Подтвердить что ты не робот

Использование 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()
})


docs дают этот пример, используя Ember.Object

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

Далее, в разделе define models приведен этот пример, в котором используется 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')
});

В чем разница между этими тремя и когда использовать?

4b9b3361

Ответ 1

Ember.Object - мать всех

Как указано в этой очень показательной статье в Ember.Object:

Почти каждый объект в Ember.js происходит от общего объекта: Ember.Object. Этот объект используется в качестве основы для представлений, контроллеров, моделей и даже самого приложения.

Это простое архитектурное решение отвечает за большую согласованность между Ember. Поскольку каждый объект был получен из одного и того же основного объекта, все они имеют некоторые основные возможности. Каждый объект Ember может наблюдать свойства других объектов, связывать их свойства со свойствами других объектов, указывать и обновлять вычисленные свойства и многое другое.

Теперь о различиях и использовании их в зависимости от вашего варианта использования.

Ember.Object

  • - это ember.js основной класс для всех объектов Ember. Это подкласс Ember.CoreObject с примененным микшированием Ember.Observable.
  • вы используете его для создания произвольных объектов, этот класс также является основой для возможности привязки данных.

Ember.Model

  • используется ember-model lib и расширяет Ember.Object
  • вы используете этот класс для определения модели, если вы используете модель ember как вашу библиотеку персистентности

DS.Model

  • используется ember-data​​strong > и это базовый класс системы ORM, который также распространяется из Ember.Object
  • вы используете его, когда используете ember-data в качестве вашей библиотеки персистентности, чтобы определить свои модели и отношения и т.д.

Надеюсь, что это поможет.