速记计算属性

时间:2015-02-05 20:28:30

标签: javascript ember.js

任何人都可以解释为什么这些人不会评价同样的事情吗?

Ember.ArrayController.extend({
    maxProducts: 5,

    hasMaxProducts: function () {
        return this.get('model.length') === this.get('maxProducts');
    }.property('model.length'),

    shorthandHasMaxProducts: Ember.computed.equal('model.length', 'maxProducts')
});

我在手柄模板中成功使用了hasMaxProducts属性,如果我尝试切换到shorthandHasMaxProducts属性,我就不会得到相同的结果,也不会似乎这个属性永远更新。当我向数组集合添加另一个模型时,会发生这种情况。我也试过计算:

Ember.computed.equal('model.[]', 'maxProducts')
Ember.computed.equal('model.[].length', 'maxProducts')

1 个答案:

答案 0 :(得分:0)

Ember.computed.equal的第二个参数不能是属性名,它必须是普通的javascript值,所以是字符串,整数,布尔等。

http://emberjs.com/api/#method_computed_equal