2012-02-03 2 views
5

Мои модели моделей, представлений и контроллеров Ember.js становятся немного подробными. Часть этого исходит от написания this.get('attr') вместо this.attr.Ember.js: ОК, чтобы избежать this.get ('attr')?

Можно ли просто написать this.attr, если атрибут объявлен напрямую, а не через привязку?

(Я понимаю, что установка другой вопрос - вы всегда должны вызывать this.set('attr', value) для того, чтобы обновить зависимые атрибуты и шаблоны.)

ответ

5

IIRC, вы можете сделать это для частных свойств, которые вы знаете, не будет наблюдаемым.

Соглашение состоит в том, чтобы придать вашим личным свойствам знак подчеркивания (например, _myProperty), в котором Ember не связывает его.

См. Документы для .get() или проверьте source code, если вы так склонны.

+0

Ссылка оказалась повреждена – rjhilgefort

3

Если свойство наблюдается или связано, вы НЕ хотите делать «this.attr». Команда get - это нексус, через который запускаются наблюдатели и привязки.

+1

Интересно. Итак, при каких обстоятельствах команда get запускает наблюдателя или привязки? Я думал, что это просто пассивно считывает текущее значение. (Я ожидал, что set, а не get, чтобы вызвать наблюдателей и привязки.) –

+0

@JoLiss: Я думаю, что это будет так, когда вы попытаетесь прочитать вычисленное свойство, которое зависит от других свойств и т. Д. –

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