[英]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
值。
我組分/ template.hbs
{{myProperty.property}}
這是一個演示代碼工作的余韻 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.