对象模型声明观察者
您可以使用 Ember.observer 方法定义内联观察者,无需原型扩展。
以下是使用 Ember.observer 方法定义内联观察者的语法。
App.ClassName = Ember.Object.extend ({ ComputedPropertyName: Ember.observer('ComputedPropertyNames', function() { //do the stuff }) });
类定义之外
使用 addObserver() 方法将观察者添加到类定义之外的对象。
语法可以按如下所示指定 −
ClassName.addObserver('ComputedPropertyNames', function() { //do the stuff });
示例
以下示例使用 Ember.observer 方法指定内联观察者 −
import Ember from 'ember'; export default function() { var Person = Ember.Object.extend ({ Name: null, //定义 Details1 和 Details2 计算属性函数 Details1: Ember.computed('Name', function() { //获取 Name 值 var Name = this.get('Name'); //返回 Name 值 return Name; }), Details2: Ember.observer('Details1', function() {}) }); //初始化人员详细信息 var person = Person.create ({ Name: 'Steve', }); person.set('Name', 'Jhon'); document.write('Name is Changed To: ' + person.get('Details1')); }
现在打开 app.js 文件并在文件顶部添加以下行 −
import outsideclassdefinitions from './outsideclassdefinitions';
其中,outsideclassdefinitions 是指定为"outsideclassdefinitions.js"并在"app"文件夹下创建的文件的名称。
接下来在导出之前,在底部调用继承的"outsideclassdefinitions"。它执行在 outsideclassdefinitions.js 文件中创建的 outsideclassdefinitions 函数 −
outsideclassdefinitions();
输出
运行 ember 服务器,您将收到以下输出 −