Ember.js如何避免计算属性中的无限循环?

时间:2014-09-27 13:08:24

标签: javascript ember.js

我有这个控制器。它从模型中读取publishedAt并将其分为日期和时间,如下所示:

dd: function() {
    console.log('dd');
    return moment(this.get('publishedAt')).format('YYYY-MM-DD');
}.property('publishedAt'),

tt: function() {
    console.log('tt');
    return moment(this.get('publishedAt')).format('H:m');
}.property('publishedAt'),

// check for recursion
publishedAt: function() {
    console.log('publishedAt');
    return moment(this.get('dd') + this.get('tt')).toDate();
}.property('dd', 'tt'),

正如您所看到的,它将publishedAt分为日期和时间,当日期或时间发生变化时,它会更新最终的publishedAt

现在这是我的大问题......它产生一个无限循环,获得彼此的价值。怎么解决这个?请帮忙。

1 个答案:

答案 0 :(得分:0)

dd: function() { // in the controller
    console.log('dd');
    return moment(this.get('publishedAt')).format('YYYY-MM-DD'); // from the model
}.property('publishedAt'),

tt: function() { // in the controller
    console.log('tt');
    return moment(this.get('publishedAt')).format('H:m'); // from the model
}.property('publishedAt'),

// check for recursion, in the controller
publishedAtDisplay: function() {
    console.log('publishedAtDisplay');
    return moment(this.get('dd') + this.get('tt')).toDate();
}.property('dd', 'tt'),