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

Какая разница между Ember.computed.alias и Ember.binding?

В Ember определение свойства как вычисленного псевдонима для другого свойства (или другого свойства объекта) с использованием Ember.computed.alias('otherProperty') похоже, имеет в основном тот же результат, что и определение его как привязки к этому свойству с помощью propertyNameBinding: 'otherProperty'.

Я посмотрел источник и документацию, но я не могу найти причин, по которым один был бы предпочтительнее другого. Очевидно, что шаблоны используют привязки, что хорошо, но для свойств, например. контроллеров или для ссылки на свойство контроллера на представление, есть ли разница?

4b9b3361

Ответ 1

Псевдоним может быть перезаписан на extend(), полностью исключая связь с другим ключом.

Краткий пример: у меня есть класс связанных с временем функций и классов, а классы имеют свойство unit (для дня, минуты и т.д.) и свойство precision. Обычно они функционально идентичны. В одном или двух классах они расходятся. Ember.computed.alias разрешает precision псевдоним unit для большинства случаев, но при необходимости переопределяется своим значением.

Обратите внимание, что create() будет использовать установщик псевдонимов вместо переопределения.

Кроме того, установка псевдонима с нулевым объектом в его пути может взорваться, а привязка просто не синхронизируется, если путь не ведет никуда.

Пожалуйста, см. комментарий morgoth ниже за мягкое выражение * Синтаксис привязки