我試圖在一個路徑中加載兩個模型,並沒有任何運算能力。一種路徑來保存所有信息來動態創建一個表單,另一種模式是將表單提交數據推送到其中的一種。這裏是一些什麼我迄今:在一個ember.js路徑中加載兩個emberFire模型
路由器地圖
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/")
})
});
}
});
火力JSON在getstarted
{
"_type" : "object",
"1" : {
"type" : "text",
"placeholder" : "Type it in here...",
"name" : "carrierName",
"caption" : "What's the name of your carrier?"
}
}
經由穿過所述第一模型遞歸創建的形式提出,將數據放入生成表單的組件中。我試圖訪問使用以下所有的第一個模型的餘燼陣列:
{{model.form.type}}
{{form.type}}
{{#each form}}
{{type}}
{{/each}}
{{#each model.form}}
{{type}}
{{/each}}
{{#each}}
{{form.type}}
{{/each}}
但它不工作...
任何想法?
更新1:
的修復使用選項3通過kingpin2k
也的建議,我不得不讓我GetstartedController以下變化:從
: App.GetstartedController = Ember.ArrayController.extend
至: App.GetstartedController = Ember.ObjectController.extend
然後訪問形式模型是簡單:
{{#each form}}
{{type}}
{{/each}}
我已經試過這種方式,但無法訪問EmberFire陣列...我試過以下所有內容:'{{model.form.type}},'{{form 。類型}},{{#每個表單}} {{類型}} {{/每個}}和'{{#each model.form}} {{type}} {{/每個}} – OgdenIT
你可以在emberjs.jsbin.com上設置一個虛擬示例,我會很樂意研究它。 – Kingpin2k
非常感謝你讓我創建一個jsbin!在創建我的應用程序的簡化示例版本的過程中,驚人的事情與您的解決方案一起工作。問題出在我的控制器中,它仍然試圖訪問數據,好像它仍然是一個常規模型,而不是創建的新模型對象。解決的辦法是將'''App.GetstartedController = Ember.ArrayController.extend''改成'''App.GetstartedController = Ember.ObjectController.extend''' – OgdenIT