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

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

问题描述:

我有这个控制器。它从模型读取publishedAt和分成的日期和时间如下:Ember.js如何避免计算属性中的无限循环?

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

现在,这是我的大问题......它产生一个无限循环获取对方的价值。如何解决这个问题?请帮忙。

+0

您究竟关心哪一个? dd,tt还是published? – Kingpin2k 2014-09-27 15:19:09

+0

感谢您的回复。我实际上需要publishedAt,因为它将被保存到/从数据库中取出。 dd和tt是输入框.. – Melvin 2014-09-27 23:18:22

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'), 
+0

如何将publishedAt保存回数据库? – Melvin 2014-09-27 23:24:25