覆盖DS.Model
的setter的最简单方法是什么?我有
month: DS.attr('date'),
monthSetter: function() {
const rawDate = this.get('month');
if (rawDate) {
var start = new Date(rawDate.getFullYear(), rawDate.getMonth(), 1);
this.set('month', start);
}
}.observes('month'),
当然,它给出了无限循环。我需要月租房产总是在月初。
答案 0 :(得分:0)
我会选择Computed property:
month: DS.attr('date'),
beginningOfMonth: Ember.computed("month", function(){
const rawDate = this.get("month");
if(rawDate){
return new Date(rawDate.getFullYear(), rawDate.getMonth(), 1);
}
})
每当属性month
发生变化时,beginningOfMonth
属性也会更新。
答案 1 :(得分:0)
您确实应该使用计算属性来处理此问题:
monthObject: Ember.computed('month', {
get() {
return this.get('month');
},
set(key, val) {
let value = val;
if (val) {
value = new Date(rawDate.getFullYear(), rawDate.getMonth(), 1);
}
this.set('month', value);
return val;
}
})
在模板中使用monthObject