声明观察者的对象模型



您可以使用 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,
      
      //Defining the Details1 and Details2 computed property function
      Details1: Ember.computed('Name', function() {
         
         //get the Name value
         var Name = this.get('Name');
         //return the Name value
         return Name;
      }),
      Details2: Ember.observer('Details1', function() {})
   });
   
   //initializing the Person details
   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.htm
广告