2014-09-27 252 views
0

我有這個控制器。它從模型讀取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

回答

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

如何將publishedAt保存回數據庫? – Melvin 2014-09-27 23:24:25