2013-02-19 3 views
7

В ember.js я считаю себя определение вычисляемых свойств, которые выглядят следующим образом:ember.js стенография для общего рисунка вычисленного собственности

someProp: function(){ 
    return this.get('otherProp'); 
}.property('otherProp') 

или

someProp: function(){ 
    return this.get('otherObject.prop'); 
}.property('otherObject.prop') 

Есть более короткий способ записи вычислен свойства, которые следуют этим шаблонам?

+0

Я думаю, что вы имели в виду, чтобы написать ** вернуть this.get (...) ** внутри вашего тела методов? – mavilein

+0

Wenn Я вижу эти примеры, я спрашиваю себя, какую ценность они предоставляют? В этих простых примерах эти методы просто создают своего рода псевдоним для данного свойства. Или у вас было что-то более сложное в виду? – mavilein

+0

@mavilein Спасибо. Привычка от написания CoffeeScript ... – nicholaides

ответ

12

Изучив немного можно высушить это немного вверх, выполнив следующие действия с помощью Ember.computed.alias:

someProp: Ember.computed.alias("otherObject.prop") 

Вы можете использовать alias также установить это свойство. Учитывая объект Ember, который реализует свойство, данное выше, вы можете сделать:

obj.set("someProp", "foo or whatever"); // The set will be propagated to otherObject.prop 

Link to Ember Source for Ember.computed.alias


Update: Ember.computed.oneWay

Недавно новая стенографию вычисленного свойства (oneWay) был добавлен в Ember, что также возможно для этого требования. Разница в том, что стенограмма oneWayработает только в корпусе. Поэтому эта стрижка быстрее при создании объекта, чем более сложная alias.

someProp: Ember.computed.oneWay("otherObject.prop") 

Link to Ember Source for Ember.computed.oneWay

+0

Удивительный! Это еще более убедительно, что примеры, которые я дал, поскольку они обрабатывают параметры настройки, а не просто их получение. – nicholaides

Смежные вопросы