#ember.js #properties
#ember.js #свойства
Вопрос:
Любопытно, что эквивалентно следующему вычисляемому свойству. На самом деле, в вычисляемый Ember метод NotEqual не встроен.
isNotPizza: computed.notEqual('controllers.application.currentRouteName', 'pizza'),
Ответ №1:
Есть пара способов:
import { not, equal } from '@ember/object/computed';
// ...
isPizza: equal('controllers.application.currentRouteName', 'pizza'),
isNotPizza: not('isPizza'),
или вы могли бы сделать не равным, выполнив:
import { not, equal } from '@ember/object/computed';
isNotPizza: not(equal('controllers.application.currentRouteName', 'pizza')),
Возможно, потребуется использовать это, хотя: https://github.com/kellyselden/ember-macro-helpers не помню, поддерживается ли это изначально.
Если вы используете ember-canary (используя собственные классы и декораторы), вы могли бы сделать:
@not
@equal('controllers.application.currentRouteName', 'pizza')
isNotPizza;
Ответ №2:
Используйте пользовательское вычисляемое свойство:
isNotPizza: computed('controllers.application.currentRouteName', function () {
return 'pizza' !== this.get('controllers.application.currentRouteName');
}),
Комментарии:
1. если у вас ember > = 31, вы можете сделать
this.controllers.application.currentRouteName