在Ember.js上重构计算属性1.13

时间:2015-06-22 10:40:11

标签: ember.js

我遇到一些问题后along the way能够将我的大部分Ember.js项目升级到1.13,但现在我无法绕过以下不推荐的代码:

filteredPosts: function(){...}.property('var1','var2','var3')

当我启用它时,我收到的唯一通知是:

  

未捕获的TypeError:controllerClass.proto不是函数。

注意 ComputedPropertyPrototype.get 是来自堆栈跟踪的唯一有用信息。

经过研究后,我只发现this有关弃用的内容,所以我想知道如何将这些代码重构为本机数组方法或者允许相同行为的任何内容。

另外,我很抱歉,因为我是新用户而无法发布特定文件的额外链接,所以如果你想看到完整的项目,你可以前往github.com/Deovandski/Fakktion.

1 个答案:

答案 0 :(得分:2)

filteredPosts: function(){...}.property('var1','var2','var3')

应该成为:

filteredPosts: Ember.computed('var1', 'var2', 'var3', function() {
...
});

这是因为在最近的Ember版本中不鼓励原型扩展,看起来你遇到了与原型扩展相关的问题。最好是创建此问题的演示,但Ember.computed应该可以正常工作。