对象模型声明观察者

您可以使用 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 服务器,您将收到以下输出 −

Ember.js Outside Class Definitions

emberjs_object_model.html