Проблема Ember с передачей данных в шаблон с использованием this.render

#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 . Смотрите Документы.