Emberjs之Observer

Observer

Person.reopen({
  fullNameChanged: Ember.observer('fullName', function() {
    // deal with the change
  })
})

或者:this

Person.reopen({
  partOfNameChanged: function() { // Because both firstName and lastName were set, this observer will fire twice. }.observes('firstName', 'lastName') });

 或者:spa

person.addObserver('fullName', function() {
  // deal with the change
});

 

1. Observer特性 

1.1 行爲上爲同步執行,當監測的屬性發生變化時,當即觸發Observer的事件回調方法。3d

1.2 Ember.run.once(....),當監聽多個屬性時,能夠指定你們都同步返回比作處理。code

1.3 Observer('xxxx').on('init') 意味着在init方法執行以後會當即執行observer,並繼續監聽xxxx屬性是否改變。server

1.4 容許多個observer監聽同一個CP屬性。blog

1.5 Observer容許依賴於鏈式屬性,當其中任意節點屬性發生改變時,Observer觸發。事件

1.6 Observer不容許監聽不在同一個包內的屬性。同步

1.7 Observer不容許在執行observer方法時移除Observer。string

 

2. Observer場景

2.1 可用於監聽依賴屬性的改變,而後在進行相應的事件處理。Observer監聽CP屬性,只有當CP屬性發生改變後才觸發Observer。it

2.2 Observer能夠監聽多屬性,當每個屬性發生變化時,會屢次順序觸發Observer方法。

2.3 能夠多Observer監聽同一個屬性。

2.4 一個監聽屬性變化,控制Timer的例子:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,,,

相關文章
相關標籤/搜索