gpt4 book ai didi

javascript - Ember js 2.0 将计算属性从 Controller 传递到组件

转载 作者:行者123 更新时间:2023-11-30 12:06:14 26 4
gpt4 key购买 nike

我正在使用 Ember 2.3。

正如标题所说,我正在尝试将一个计算属性从我的 Controller 传递到我的组件。我不知道我做错了什么,但它对我不起作用。这就是我正在做的:

在我的 Controller 中:

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 始终设置为 {}。它永远不会得到我在模板中提交的值。请注意,我还尝试过在我的 Controller 上将一个属性定义为字符串文字并将其提交,但它也无法被识别。另外值得注意的是,我最初尝试在我的路由中定义计算属性,但我发现我可以访问它的唯一方法是如果它是在模型 Hook 本身中定义的,例如:

model(params) {
return {
myComputedProperty: Ember.computed()...........
};
}

但这对我不起作用,因为我需要来自 Controller 的值,而这些值在调用模型 Hook 时不可用。

我不知道我在这里做错了什么。我敢肯定这很简单,但是我的想法已经用完了。谁能告诉我我在这里做错了什么?以任何方式将计算属性从 Controller 传递给组件是不好的做法吗?任何意见,将不胜感激。非常感谢!

最佳答案

将计算属性从 Controller 传递到组件中是可以的。

您拥有的代码应该可以正常工作。一个问题/变化是:您是否需要在 Controller 的计算属性中返回一个嵌套对象? {属性:this.get('someProperty')}`

如果是这样,那么您需要在组件中对其调用 .property 以访问 Controller 的 someProperty 值。

我的组件/template.hbs

{{myProperty.property}}

这是 an ember-twiddle demonstrating the code working .

关于javascript - Ember js 2.0 将计算属性从 Controller 传递到组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35141946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com