Я пытаюсь загрузить две модели по одному маршруту, и мне не удавалось это выяснить. Один маршрут для хранения всей информации для динамического создания формы, а другая модель - та, в которую он будет передавать данные представления формы. Вот некоторые из того, что я до сих пор:Загрузите две модели emberFire в один маршрут ember.js
Router Map
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 на getstarted
{
"_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}}
Но это не работает ...
Любые идеи?
Update 1:
Исправление использует вариант 3, как было предложено kingpin2k
Кроме того, я должен был сделать следующее изменение в моей GetstartedController:
от: App.GetstartedController = Ember.ArrayController.extend
до: App.GetstartedController = Ember.ObjectController.extend
Тогда доступ к модели форма была так просто, как:
{{#each form}}
{{type}}
{{/each}}
Я попытался это так, но не смогли получить доступ к массивам EmberFire ... Я пробовал все следующий: '{{model.form.type}}' '{{форму ,type}} ',' {{#each form}} {{type}} {{/ each}} 'и' {{#each model.form}} {{type}} {{/ each}} ' – OgdenIT
Можете ли вы создать фиктивный пример на emberjs.jsbin.com, и я с удовольствием рассмотрю его. – Kingpin2k
Огромное вам спасибо, что попросил меня создать jsbin !!!! Во время создания вами урезанной примерной версии моего приложения работа с вашим решением зависела. Проблема была в моем контроллере для этого маршрута ... Он все еще пытался получить доступ к данным, как если бы это была обычная модель, а не созданный новый объект модели. Исправление было связано с изменением '' 'App.GetstartedController = Ember.ArrayController.extend'''' '' App.GetstartedController = Ember.ObjectController.extend''' – OgdenIT