Ember.js从.observes获取更改值的关键字

时间:2012-10-01 15:10:46

标签: javascript coffeescript ember.js

Ember.js中,有没有办法在使用相同的闭包观察多个值时获取对象内观察到的变化的关键字?

e.g。

MyItem = Ember.Object.extend
    name: null
    age: null
    height: null
    weight: null
    has_grown_or_shrunk: false
    has_grown_or_shrunk_obs: (->
        @set('has_grown_or_shrunk', true)
    ).observes('height','weight')

has_grown_or_shrunk_obs是否有办法知道哪些键触发了更改?它似乎没有来自文档here

是否有另一种更好的方法来观察多个具有相同逻辑的键,这样我就可以知道哪个键发生了变化?

1 个答案:

答案 0 :(得分:1)

这是无证件的尽我所知,但这是我发现的

has_grown_or_shrunk_obs: (->
    console.log arguments
    @set('has_grown_or_shrunk', true)
).observes('height','weight')

输出:

[Class, "height", undefined] 

其中“dom_class”是我的密钥的名称。所以看来传递的第二个参数是更改元素的关键。

这个伪代码就是如何完成它。

((self, key) ->
    #Logic here
).observes(key1, key2, key3...)