使用JS apply()的Ember计算属性

时间:2013-02-12 10:47:52

标签: ember.js

如果可能的话,我想让以下代码工作。目标是通过使用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"))

到目前为止......没有运气。它似乎拒绝了我最诚挚的愿望。

任何帮助都将受到极大的赞赏! 史蒂夫

1 个答案:

答案 0 :(得分:2)

您不需要使用apply功能,我不确定您认为为什么需要这样做。属性函数只需要它所依赖的属性的参数。在这种情况下,它是'myProps'。您不需要get该属性,Ember将为您完成所有工作。

看看这个jsfiddle,你会明白我的意思。您可以在myComputed属性中对数组进行所有操作,并且数组已经可供您使用。

App.ApplicationView = Em.View.extend({
    myProps: ['123', '456'],
    myComputed : function () {
        return this.get('myProps');
    }.property('myProps')
});