2015-03-27 2 views
0

Мне интересно, могу ли я изменить свойство, которое находится в компоненте через внешний контроллер.изменить свойство компонента через контроллер в emberJS

То есть, у меня есть впрыскивается компонент в index.html следующим образом: {{ button-feed }}

Этот компонент используется во многих взглядов.

Этот компонент должен быть скрыт, поскольку я получаю значения в контроллере, и я действительно хочу, так как этот контроллер модифицирует свойство, которое скрывает или показывает кнопку.

компонент имеет вид:

App.ButtonComponent = Ember.Component.extend ({ 
   hideClass: false 
}); 

Свойство hideClass используется для отображения или нет кнопку. Я хочу изменить это свойство, но с помощью контроллера, который не принадлежит кнопке компонента.

Я попытался получить доступ к собственности извне компонента, но это невозможно.

ответ

2

Вы можете передать параметры компонента, как это:

{{button-feed hideClass=true}} 
{{button-feed hideClass=false}} 

Кроме того, вы можете передать в собственность контроллера тоже.

{{button-feed hideClass=controllerProperty}} 

Чтобы ответить на комментарий, вы можете установить controllerProperty, используя код, приведенный ниже. Поскольку controllerProperty привязан к hideClass на вашем компоненте, изменение controllerProperty изменится на hideClass.

controller.set('controllerProperty', false); 

Вы можете прочитать больше о настройке свойств на контроллере here.

+0

Да, но как я могу обновить свойство hideClass от контроллера? Извините, я новичок: P –

+0

См. Обновленный ответ. Надеюсь это поможет! – rog

Смежные вопросы