簡體   English   中英

為Ember對象屬性定義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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM