通过emberJS中的控制器修改组件的属性

时间:2015-03-27 17:38:56

标签: javascript ember.js components

我想知道是否可以通过外部控制器修改组件中的属性。

也就是说,我在index.html中有一个注入的组件,如下所示: {{ button-feed }}

此组件在许多视图中使用。

当我在控制器中获取值时,必须隐藏此组件,我真正想要的是,因为此控制器,修改隐藏或显示按钮的属性。

该组件的格式为:

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

属性hideClass用于显示或不显示按钮。我想要的是修改此属性,但使用不属于组件按钮的控制器。

我试图从组件外部访问该属性,但这是不可能的。

1 个答案:

答案 0 :(得分:2)

您可以将参数传递给组件,如下所示:

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

此外,您也可以传入控制器属性。

{{button-feed hideClass=controllerProperty}}

要回答您的评论,您可以使用以下代码设置controllerProperty。由于controllerProperty已绑定到您组件的hideClass,因此更改controllerProperty将更改hideClass

controller.set('controllerProperty', false);

您可以阅读有关在控制器here上设置属性的更多信息。