我有一个带有属性Foo
的Ember.Object message
:
Foo = Ember.Object.extend({
message: null
执行this.set('message', value)
时,我想在value
上设置message
之前修改.observes
变量。
我可以使用Foo = Ember.Object.extend({
message: null,
messageSetter: function() {
this.set('message', this.get('message') + 'suffix')
}.observes('message')
:
computed property
或者我可以使用getter
甚至处理Foo = Ember.Object.extend({
messageValue: null,
message: function(key, value) {
if(arguments.length > 1) {
this.set('messageValue', value + 'suffix');
}
return this.get('messageValue');
}.property('message')
然后:
{{1}}
但两者看起来有点混乱,是否有一种更清晰的方法来修改值,然后才能在属性上设置?
答案 0 :(得分:0)
你帖子中的第二个例子是你想要做的,但你有一个类型-o。您应该与messageValue
中的}.property('messageValue'}
绑定。
但是,如果您不关心message
的原始输入值,您可以使用计算属性获得一些乐趣。 CP返回的值将成为该CP的值。因此,您可以将其简化为:
http://emberjs.jsbin.com/jimuvaji/1/edit
但实际上你应该使用你的例子#2。