为什么.property('someProperty');用于ember.js中的计算属性

时间:2013-06-07 11:28:59

标签: javascript frameworks ember.js

我是Ember.js的新手并阅读其文档,并按照给定的开始示例。他们在计算属性中使用property方法并传递模型属性(使用@each一些时间)。我不知道他们为什么要用它。此处的持续时间使用this.get('model.duration')而非.property('model.duration')

App.SongController = Ember.ObjectController.extend({
  duration: function() {
    var duration = this.get('model.duration'),
         minutes = Math.floor(duration / 60),
         seconds = duration % 60;
    return [minutes, seconds].join(':');
  }.property('model.duration')
});

1 个答案:

答案 0 :(得分:2)

默认情况下,计算属性.property()被缓存。也就是说,每次调用属性时都不会计算该值。

要在任何依赖键更改时再次计算计算属性的值,我们需要指定其依赖项...

但是我们可以使用.property().volatile()

关闭可缓存的选项

参考Ember API