Emberjs之Observer

Observer

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

或者:

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

或者:

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

1. Observer特性

1.1 行为上为同步执行,当监测的属性发生变化时,立即触发Observer的事件回调方法。

1.2 Ember.run.once(....),当监听多个属性时,可以指定大家都同步返回比做处理。

1.3 Observer(‘xxxx‘).on(‘init‘) 意味着在init方法执行之后会立即执行observer,并继续监听xxxx属性是否改变。

1.4 允许多个observer监听同一个CP属性。

1.5 Observer允许依赖于链式属性,当其中任意节点属性发生改变时,Observer触发。

1.6 Observer不允许监听不在同一个包内的属性。

1.7 Observer不允许在执行observer方法时移除Observer。

2. Observer场景

2.1 可用于监听依赖属性的改变,然后在进行相应的事件处理。Observer监听CP属性,只有当CP属性发生改变后才触发Observer。

2.2 Observer可以监听多属性,当每一个属性发生变化时,会多次顺序触发Observer方法。

2.3 可以多Observer监听同一个属性。

2.4 一个监听属性变化,控制Timer的例子:

,,,

时间: 2024-10-07 22:13:40

Emberjs之Observer的相关文章

Ember.js 入门指南——观察者(observer)

本系列文章全部从(http://ibeginner.sinaapp.com/)迁移过来,欢迎访问原网站. 1,观察者使用 Ember可以察觉所有属性的变化,包括计算属性.观察者是非常有用的,特别是计算属性绑定之后需要同步的时候. 观察者经常被Ember开发过度使用.Ember框架本身已经大量使用观察者,但是对于大多数的开发者面对开发问题时使用计算属性是更适合的解决方案. 使用方式:可以用"Ember.observer"设置一个对象为观察者. // Observer对于Emberjs来说

设计模式学习——观察者模式(Observer Pattern)

有个报社,在有新报纸的时候,会给所有的订阅者发送推送. 1 /// 2 /// @file Observer.h 3 /// @author marrs([email protected]) 4 /// @date 2017-08-20 19:54:38 5 /// 6 7 #ifndef __OBSERVER_H__ 8 #define __OBSERVER_H__ 9 10 #include <iostream> 11 12 namespace marrs{ 13 14 using std

设计模式之二:观察者模式(Observer Pattern)

先看下观察者模式的定义: The Observer Pattern defines a one-to-many denpendency between objects so that when one object changes state, all of its dependents are notified and updated automatically.:观察者模式定义了对象间一对多依赖关系,使得当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新. 观察者模式又叫发布-

编程模式之观察者模式(Observer)

观察者模式由四个角色组成:抽象主题角色,抽象观察者角色,具体主题角色,抽象观察者角色,具体观察者角色. 抽象主题角色(Subject):把所有的观察者角色的引用保存在一个集合中,可以有任意数量的观察者.其提供一个接口,可以添加.删除观察者,并可以向登记过的观察者发送通知. 具体主题角色(Observer):实现了抽象主题角色提供的接口的一个具体类. 抽象观察者角色(ConcreteSubject):提供一个借口,以接收主题角色发送的通知. 具体观察者角色(ConcreteObserver):实现

Observer Pattern

通知者接口: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace Ando.Observer 7 { 8 public interface ISender 9 { 10 void Add( Observer observer); 11 12 void Remove(Observer observer); 13 14 void Noti

Observer模式实践

Observer 模式在实践中的应用场景: 为 Point 类设计一个数据绑定机制,当其坐标 x 或 y 被更改时,可以通知外界其更改的过程.将更改过程打印在控制台上.考虑使用松耦合设计. 代码: #include <list> #include <iostream> using namespace std; struct Observer; struct Subject { virtual void attach(Observer*) = 0; virtual void deta

设计模式--观察者模式【Observer Pattern】

<孙子兵法>有云: "知彼知己,百战不殆:不知彼而知己,一胜一负:不 知彼,不知己,每战必殆" ,那怎么才能知己知彼呢?知己是很容易的,自己的军队嘛,很容易知道,那怎么知彼呢?安插间谍是很好的一个办法,我们今天就来讲一个间谍的故事. 韩非子大家都应该记得吧,法家的代表人物,主张建立法制社会,实施重罚制度,真是非常有远见呀,看看现在社会在呼吁什么,建立法制化的社会,在 2000 多年前就已经提出了.大家可能还不知道,法家还有一个非常重要的代表人物,李斯,对,就是李斯,秦国的丞

emberjs

emberjs 博客:http://www.cnblogs.com/xiangbing/p/emberjs-test.html 案例:http://www.lovewebgames.com/emberjs/test/index.html 源码:https://github.com/tianxiangbing/emberjs-test 准备工作 首页我们要做的是从网上下载下来emberjs相关的文件,目前在1.x的版本中,ember是要依赖jquery(v1.7.1~2.2.0) 和handleb

我理解设计模式C++实现观察者模式Observer Pattern

概述: 近期中国股市起起伏伏,当然了起伏就用商机,小明发现商机后果断想入市,买入了中国证券,他想在电脑client上,网页上,手机上,iPad上都能够查看到该证券的实时行情,这样的情况下我们应该怎么设计我们的软件呢?我们能够这样:小明的全部client上都订阅中国证券这个股票,仅仅要股票一有变化,全部的client都会被通知到而且被自己主动更新. 这就是我们的观察者模式,她定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 全部依赖于它的对象都得到通知并被自己主动更新. 类图与实例: