20

このスクリーンキャスト : http://www.embercasts.com/episodes/getting-started-with-ember-modelEmber.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')
});

これら 3 つの違いは何ですか?

4

1 に答える 1

31

Ember.Object -すべての母

Ember.Objectに関するこの非常に説明的な記事で述べられているように:

Ember.js のほとんどすべてのオブジェクトは、共通のオブジェクトである Ember.Object から派生しています。このオブジェクトは、ビュー、コントローラー、モデル、さらにはアプリケーション自体の基礎として使用されます。

この単純なアーキテクチャ上の決定が、Ember 全体の一貫性の多くを担っています。すべてのオブジェクトは同じコア オブジェクトから派生しているため、いくつかのコア機能を共有しています。すべての Ember オブジェクトは、他のオブジェクトのプロパティを観察したり、それらのプロパティを他のオブジェクトのプロパティにバインドしたり、計算されたプロパティを指定および更新したりできます。

次に、違いと、ユースケースに応じてそれらをいつ使用するかについて説明します。

Ember.Object

Ember.Model

  • ember-model libによって使用され、拡張されますEmber.Object
  • 永続化ライブラリとして ember-model を使用する場合、このクラスを使用してモデルを定義します

DS.モデル

  • ember-dataによって使用され、ORM システムの基本クラスであり、Ember.Object
  • モデルや関係などを定義する永続ライブラリとして ember-data を使用するときに使用します。

それが役に立てば幸い。

于 2013-08-14T10:04:45.007 に答える