20

此截屏视频: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')
});

这三个有什么区别,什么时候用哪个?

4

1 回答 1

31

Ember.Object - 万物之

正如这篇关于 Ember.Object的说明性文章所述:

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

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

现在了解差异以及何时可以根据您的用例使用它们。

Ember.Object

Ember.Model

  • ember-model库使用并扩展Ember.Object
  • 如果你使用 ember-model 作为你的持久化库,你可以使用这个类来定义一个模型

DS模型

  • ember-data使用,它是 ORM 系统基类,它也从Ember.Object
  • 当您使用 ember-data 作为持久性库来定义模型和关系等时,您会使用它。

希望能帮助到你。

于 2013-08-14T10:04:45.007 回答