1 つのルートで 2 つのモデルをロードしようとしていますが、うまくいきません。フォームを動的に作成するためのすべての情報を保持する 1 つのルートと、フォーム送信データをプッシュするもう 1 つのモデルです。ここに私がこれまでに持っているもののいくつかがあります:
ルーターマップ
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');
});
});
ルートについては、次の3つすべてを試しました
オプション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}}