#javascript #jquery #ember.js
#javascript #jquery #ember.js
Вопрос:
Я хочу отобразить шаблон с помощью render () и хочу передать некоторые данные (модель)
Я получаю данные в шаблоне, если передаю параметр в качестве модели model: this.controllerFor(this.routeName).SomeModel
this.render('my-template', {
into: 'application',
outlet: 'myOutlet',
model: this.controllerFor(this.routeName).someModel
});
Но приведенное ниже не работает. Есть ли какие-либо ограничения на присвоение имен для переданной модели?
this.render('my-template', {
into: 'application',
outlet: 'flyout',
myModel: this.controllerFor(this.routeName).someModel
});
Ответ №1:
Передаваемое вами свойство — это не ваше имя model
, оно ваше model
.
Все, что вы передаете в качестве model
свойства, будет установлено как model
свойство на соответствующем контроллере.
Соответствующая проверка, которую ember выполняет под капотом render(), заключается в следующем:
if (options amp;amp; options.model) {
controller.set('model', options.model);
}
где параметры — это то, что вы передаете в качестве второго аргумента render()
.
Стоит отметить, что это просто значение controller.model
controller.someModel
, которое является избыточным, поскольку у вас уже есть доступ к этим данным.
Ответ №2:
render
Метод имеет два параметра: name
и options
.
Свойства options
:
- в
- выход
- контроллер
- Модель
Ничего не вызывается myModel
. Смотрите Документы.