定义模型时使用DS.model或Ember.model或Ember.Object



此屏幕广播:http://www.embercasts.com/episodes/getting-started-with-ember-model使用Ember.model创建了这样的人物模型:

App.Person = Ember.Model.extend({
    name : Ember.attr()
})


文档使用Ember.Object 给出了这个例子

App.Person = Ember.Object.extend({
    say : function(thing) {
        alert(thing);
    }
});

此外,在定义模型部分,给出了使用DS.model 的示例

App.Person = DS.Model.extend({
  firstName: DS.attr('string'),
  lastName: DS.attr('string'),
  birthday: DS.attr('date'),
  fullName: function() {
    return this.get('firstName') + ' ' + this.get('lastName');
  }.property('firstName', 'lastName')
});

这三者之间的区别是什么?何时使用哪个?

Ember.Object

正如这篇关于Ember的说明性文章所述。对象:

Ember.js中几乎每个对象都派生自一个公共对象:Ember.object。这个对象被用作视图、控制器、模型甚至应用程序本身的基础。

这个简单的体系结构决策负责Ember之间的大部分一致性。因为每个对象都派生自同一个核心对象,所以它们都共享一些核心功能。每个Ember对象都可以观察其他对象的属性,将它们的属性绑定到其他对象的特性,指定和更新计算的属性,等等。

现在来看差异,以及根据您的用例何时可以使用它们。

Ember.Object

  • 是所有ember对象的ember.js主类。它是应用了Ember.Observable mixin的Ember.CoreObject的一个子类
  • 您可以使用它来创建任意对象,这个类也是实现数据绑定的基础

Ember模型

  • 成员模型库使用,并扩展Ember.Object
  • 如果使用ember模型作为持久性库,则可以使用此类定义模型

DS.型号

  • 成员数据使用,它是ORM系统基类,也是从Ember.Object扩展而来的
  • 当您使用ember数据作为持久性库来定义模型和关系等时,您可以使用它

希望能有所帮助。

最新更新