如果可能的话,我想让以下代码工作。目标是通过使用Javascripts“apply”方法获得依赖于字符串列表的计算属性。
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/apply
App.View = Em.View.extend
myProps: ['content.prop1', 'content.prop2']
myComputed : (->
return "super valuable things"
).property.apply(@get("myCompted"), @get("myProps"))
到目前为止......没有运气。它似乎拒绝了我最诚挚的愿望。
任何帮助都将受到极大的赞赏! 史蒂夫
答案 0 :(得分:2)
您不需要使用apply
功能,我不确定您认为为什么需要这样做。属性函数只需要它所依赖的属性的参数。在这种情况下,它是'myProps'
。您不需要get
该属性,Ember将为您完成所有工作。
看看这个jsfiddle,你会明白我的意思。您可以在myComputed
属性中对数组进行所有操作,并且数组已经可供您使用。
App.ApplicationView = Em.View.extend({
myProps: ['123', '456'],
myComputed : function () {
return this.get('myProps');
}.property('myProps')
});