【发布时间】:2014-01-10 03:42:31
【问题描述】:
我正在尝试在一条路线中加载两个模型,但没有任何运气可以解决。一种保存所有信息以动态创建表单的方法,另一种模型是将表单提交数据推送到的模型。以下是我目前掌握的一些内容:
路由器地图
App.Router.map(function() {
this.route('about');
this.route('plans');
this.resource('prices', function() {
this.resource('price', { path: '/:price_id' });
});
this.resource('apply', function() {
this.resource('getstarted');
this.resource('addresses');
this.resource('contacts');
this.resource('drivers');
this.resource('equipment');
this.resource('assign');
});
});
对于路线我已经尝试了以下所有三个
选项 1
App.GetstartedRoute = Ember.Route.extend({
model: function(){
return Ember.Object.create({
form: function() {
return EmberFire.Array.create({
ref: new Firebase("https://example.firebaseio.com/apply/getstarted")
});
},
data: function() {
return EmberFire.Array.create({
ref: new Firebase("https://example2.firebaseio.com/companies/-JAY7n7gXJeVbFCCDJdH/carriers/")
});
},
});
}
});
选项 2
App.GetstartedRoute = Ember.Route.extend({
model: function(){
return Ember.RSVP.hash({
form: function() {
return EmberFire.Array.create({
ref: new Firebase("https://example.firebaseio.com/apply/getstarted/")
});
},
data: function() {
return EmberFire.Array.create({
ref: new Firebase("https://example2.firebaseio.com/companies/-JAY7n7gXJeVbFCCDJdH/carriers/")
});
}
});
}
});
解决方案选项 3 - 由 kingpin2k 建议
App.GetstartedRoute = Ember.Route.extend({
model: function(){
return Ember.Object.create({
form: EmberFire.Array.create({
ref: new Firebase("https://moveloaded-ember.firebaseio.com/apply/getstarted/")
}),
data: EmberFire.Array.create({
ref: new Firebase("https://logistek.firebaseio.com/companies/-JAY7n7gXJeVbFCCDJdH/carriers/")
})
});
}
});
FireBase json 入门
{
"_type" : "object",
"1" : {
"type" : "text",
"placeholder" : "Type it in here...",
"name" : "carrierName",
"caption" : "What's the name of your carrier?"
}
}
表单是通过第一个模型递归创建的,将数据放入生成表单的组件中。我尝试使用以下所有方法访问第一个模型中的 emberFire 数组:
{{model.form.type}}
{{form.type}}
{{#each form}}
{{type}}
{{/each}}
{{#each model.form}}
{{type}}
{{/each}}
{{#each}}
{{form.type}}
{{/each}}
但它不起作用......
有什么想法吗?
更新 1:
修复使用了 kingpin2k 建议的选项 3
另外,我必须对我的 GetstartedController 进行以下更改:
来自:
App.GetstartedController = Ember.ArrayController.extend
到:
App.GetstartedController = Ember.ObjectController.extend
那么访问表单模型就这么简单了:
{{#each form}}
{{type}}
{{/each}}
【问题讨论】:
标签: ember.js firebase emberfire