Ember js 2.0 将计算属性从控制器传递到组件
Ember js 2.0 passing computed property from controller to component
我正在使用Ember 2.3。
就像标题说的那样,我正在尝试将计算属性从控制器传递到我的组件。我不知道我做错了什么,但它对我不起作用。这就是我正在做的:
在我的控制器中:
import Ember from 'ember';
export default Ember.Controller.extend({
someProperty: 'someValue',
myComputedProperty: Ember.computed('someProperty', function(){
return {property: this.get('someProperty')};
})
});
我的组件:
export default Ember.Component.extend({
myProperty: {}
});
在我的模板中:
{{my-component myProperty=myComputedProperty}}
我所看到的是,我在my-component
myProperty
总是设置为{}
。它永远不会获得我在模板中交出的值。请注意,我还尝试仅在控制器上将属性定义为字符串文本并将其提交,但也无法识别。同样值得注意的是,我最初确实尝试在我的路由中定义计算属性,但我发现我可以访问它的唯一方法是在模型钩子本身中定义它,例如:
model(params) {
return {
myComputedProperty: Ember.computed()...........
};
}
但这对我不起作用,因为我需要来自控制器的值,这些值在调用模型钩子时不可用。
我不知道我在这里做错了什么。我确定这很简单,但我的想法已经用完了。谁能告诉我我在这里做错了什么?将计算属性从控制器传递到组件是否以任何方式是不良做法?任何建议将不胜感激。多谢!
可以将计算属性从控制器传递到组件中。
您拥有的代码应该可以正常工作。一个问题/更改是:是否需要在控制器的计算属性中返回嵌套对象?{property: this.get('someProperty'(}'
如果是这样,则需要在组件中调用.property
,以便访问控制器的someProperty
值。
my-component/template.hbs
{{myProperty.property}}
这是一个演示代码工作的余烬。
相关文章:
- 通过emberJS中的控制器修改组件的属性
- EmberJs-将所有来自子组件的操作路由到父组件,再路由到父控制器
- 在javascript主组件中定义Apex控制器
- 如何观察控制器/组件内阵列的变化
- 如何将值从可视化力量组件中的脚本传递到其控制器
- 控制器中的 Emberjs-1.0 组件和计算属性
- Emberjs-1.0 将控制器实例传递给 ember 组件
- 无法识别余烬组件 - 绑定属性渗入控制器
- Ember js 2.0 将计算属性从控制器传递到组件
- 如何在 ExtJS5 中从控制器向视图添加组件
- Ember.js设置控制器属性表单组件
- AngularJS应用程序组件(模块、工厂、控制器)定义的确切工作方式
- 如何使用ui路由器在组件驱动架构中定义控制器
- 将控制器操作传递给EmberJS中的组件会返回未定义的结果
- 如何将应用程序控制器中声明的值传递给组件
- 通过聚合物核心页组件指定默认的熨斗控制器路由(内部元素)
- 如何从成员控制器或组件观察把手模板中的多个状态
- 使用`this$watch`而不是'scope$手表`with'控制器组件'
- 角度2:在控制器/组件中创建路由
- 扩展控制器组件angularjs