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
。
现在,这是我的大问题......它产生一个无限循环获取对方的价值。如何解决这个问题?请帮忙。
答
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
您究竟关心哪一个? dd,tt还是published? – Kingpin2k 2014-09-27 15:19:09
感谢您的回复。我实际上需要publishedAt,因为它将被保存到/从数据库中取出。 dd和tt是输入框.. – Melvin 2014-09-27 23:18:22