1

我对 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')
});
4

1 回答 1

2

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

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

但是我们可以通过使用关闭可缓存选项.property().volatile()

参考Ember API

于 2013-06-07T13:02:41.633 回答