我的代码如下:
import Ember from 'ember';
export default Ember.mixin.create({
maxPosition: 100,
minPosition: 0,
position: 0,
updatePosition: function(increment){
this.set('position', increment);
}
});
为清晰起见,此代码已超简化,但我想在minPosition
上放置maxPosition
和position
的界限
例如:
如果我跑:this.updatePosition(150);
然后运行this.get('position')
它应该返回100
运行position
时,是否可以将this.set()
置于将被这些值绑定的计算属性中?
答案 0 :(得分:2)
我没试过,但documentation说这是可能的。这样的事情应该有效:
import Ember from 'ember';
export default Ember.mixin.create({
maxPosition: 100,
minPosition: 0,
_pos: 0,
position: Ember.computed('_pos', {
get: function(key) {
return this.get('_pos');
},
set: function(key, value) {
var pos = Math.max(Math.min(value, this.get('maxPosition')), this.get('minPosition'));
this.set('_pos', pos);
return pos;
}
})
});