对象模型观察者和异步

观察者在 Ember.js 中是同步的,当观察者的一个属性更新时会立即触发

示例

以下示例在它们观察到的属性之一发生变化时立即触发 −

import Ember from 'ember';

export default function() {
   var Person = Ember.Object.extend ({
      fName: null,
      lName: null,
      
      //定义 Details1 和 Details2 计算属性函数
      Details1: Ember.computed('fName', 'lName',function() {
         return this.get('fName')+' '+this.get('lName');
      }),

      Details2: Ember.observer('Details1', function() {
         this.set('fName','Will');
         this.set('lName','Smith');
      })
   });

   //初始化人员详细信息
   var person = Person.create ({
     
      //fName 和 lName 变量的初始值
      fName: 'Mark',
      lName:'Waugh'
   });

   //使用 set() 方法更新"fName 和 lName"的值
   document.write('<strong>The updated name : </strong>' +person.get('Details1'));
}

现在打开 app.js 文件并在文件顶部添加以下行 −

import observerasynchrony from './observerasynchrony';

其中,observerasynchrony 是指定为"observerasynchrony.js"并在"app"文件夹下创建的文件的名称。

接下来,在导出之前,在底部调用继承的"observerasynchrony"。它执行在 observerasynchrony.js 文件中创建的 observerasynchrony 函数−

observerasynchrony();

输出

运行 ember 服务器,您将收到以下输出 −

Ember.js Observer Asynchrony

emberjs_object_model.html