Я пытаюсь повторно использовать код в моих контроллерах/шаблонах. В одном из моих шаблонов у меня есть следующее:Как получить доступ к контенту контроллера на основе имени свойства
{{#if controllers.nodesIndex.content.isUpdating}}
Это прекрасно работает, но делает этот шаблон очень конкретным. Я хочу обобщить это. Я хотел бы сделать Somthing как:
{{#if controllers.{{indexController}}.content.isUpdating }}
Где indexController
фактически параметр конфигурации в моем контроллере:
indexController : 'nodesIndex',
Синтаксис не работает, и я не знаю, если есть способ делать то, что я пытаюсь сделать.
Другая вещь, которую я попытался просто:
{{#if isUpdating}}
И я определил это как вычисляемого свойства в контроллере. Это общая настройка («базовый класс»):
getIndexController : function() {
return this.get('controllers.' + this.indexController);
},
isUpdating : function() { return this.getIndexController().get('content').isUpdating; }.property(),
Но я не могу сказать property()
, какие другие свойства этого вычисленное свойство зависит, так как они на самом деле конфигурируемые, возвращенная функцией getIndexController()
.
Любые идеи о доступе к контенту «динамического» контроллера?
Не уверен, что это может работать вообще: 'isUpdating' не зависит от значения' this.indexController', но на 'isUpdating' свойство 'content'' контроллера ', указанное в 'this.indexController'. То есть, даже если 'this.indexController' не изменяется (что не будет: это фиксированный параметр для данного контроллера), свойство' isUpdating' может очень хорошо измениться, поскольку указанное свойство в контроллере, указанное в 'this.indexController' изменится. – dangonfast