Javascript 如何避免计算属性中的无限循环?

Javascript 如何避免计算属性中的无限循环?,javascript,ember.js,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('publi

我有这个控制器。它从模型中读取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'),
如您所见,它将发布的数据分为日期和时间,当日期或时间发生更改时,它将更新最终发布的数据


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

你真正关心的是哪一个?dd、tt或publishedAt?谢谢您的回复。我实际上需要publishedAt,因为它将被保存/带到数据库中/从数据库中取出。dd和tt用于输入框。如何将发布的数据保存回数据库?
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'),