@Z_Coder

Метод property() класса function в ember.js

В документации есть два примера использования function(){}.property():

Пример 1:

MyApp.President = Ember.Object.extend({
  firstName: '',
  lastName:  '',

  fullName: function() {
    return this.get('firstName') + ' ' + this.get('lastName');

    // Call this flag to mark the function as a property
  }.property()
});

var president = MyApp.President.create({
  firstName: "Barack",
  lastName: "Obama"
});

president.get('fullName');


и пример 2:

MyApp.President = Ember.Object.extend({
  firstName: '',
  lastName:  '',

  fullName: function() {
    return this.get('firstName') + ' ' + this.get('lastName');

    // Tell Ember.js that this computed property depends on firstName
    // and lastName
  }.property('firstName', 'lastName')
});


Вопрос: какая между ними принципиальная разница? В документации так так туманно описана нужда второго способа, что я до конца не могу разобраться. Не хватает живого примера что-ли.

Активным большое спасибо.
  • Вопрос задан
  • 2804 просмотра
Решения вопроса 1
@Z_Coder Автор вопроса
Конкретный ответ здесь.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
BuriK666
@BuriK666
Компьютерный псих
Там же ясно написано.
Many computed properties have dependencies on other properties. For example, in the above example, the fullName property depends on firstName and lastName to determine its value. You can tell Ember about these dependencies like this:
Ответ написан
BuriK666
@BuriK666
Компьютерный псих
Возьмем первый пример.
Если сделать:
var president = MyApp.President.create({
  firstName: "Barack",
  lastName: "Obama"
});

president.get('fullName');
Вернет "Barach Obama"

president.set('firstName', 'George');
president.set('lastName', 'Washington');
president.get('fullName');

Опять же вернет "Barach Obama", а если указать зависимости будет все ОК.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы