![](/img/trans.png)
[英]How to check if a property of an object is a getter or a setter?
[英]Defining setter for Ember Object property
我有一個帶有屬性message
的Ember.Object Foo
:
Foo = Ember.Object.extend({
message: null
當執行this.set('message', value)
,我想在message
上設置之前修改value
變量。
我可以用.observes
做到這.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')
但兩者看起來都有點混亂,是否有一種更清晰的方法來修改價值,然后才能在物業上設置?
你的帖子中的第二個例子是你想要做的,但你有一個類型-o。 您應該在}.property('messageValue'}
綁定到messageValue
。
但是,如果您不關心message
的原始輸入值,則可以使用計算屬性獲得一些樂趣。 CP返回的值將成為該CP的值。 所以,您可以將其簡化為:
http://emberjs.jsbin.com/jimuvaji/1/edit
但實際上你應該使用你的例子#2。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.