Почему embe.rjs не видит мой метод контроллера в шаблоне? ⇐ Javascript
-
Гость
Почему embe.rjs не видит мой метод контроллера в шаблоне?
В проекте у меня есть ввод шаблона:
{{#if (communicationPreferenceIs 'Телефон')}} Телефон* {{ввод-проверка тип="текст" требуется = истина класс="форма-контроль" значение = модель.телефон заполнитель="Телефон" шаблон="[0-9]*" максимальная длина = "30" onkeydown="" key-down="validateInput" }} {{/если}} Мне нужен условный рендеринг и обернуть его в if-конструкцию. В нем я использую метод communicationPreferenceIs контроллера для проверки значения. Вот его код:
App.EditController = Ember.Controller.extend(Ember.Evented, { communicationPreferenceIs: функция (предпочтение) { const model = this.get('model'); if (!model.communicationPreference || !model.communicationPreference.name) { вернуть ложь; } const currentPreference = model.communicationPreference.name; вернуть currentPreference === предпочтение; }.property('model.communicationPreference'), } Итак, при рендеринге я получаю ошибку Ember:
«Утверждение не выполнено: не удалось найти помощника с именем «communicationPreferenceIs»» Я поэкспериментировал и обнаружил, что этот метод работает:
communicationPreferencePhone: function() { const model = this.get('model'); возвращаться ( model.communicationPreference && model.communicationPreference.name === 'Телефон' ); }.property('model.communicationPreference'), если я использую его в режиме:
{{#if communicationPreferencePhone }} работает хорошо. Как заставить communicationPreferenceIs работать более универсально?
В проекте у меня есть ввод шаблона:
{{#if (communicationPreferenceIs 'Телефон')}} Телефон* {{ввод-проверка тип="текст" требуется = истина класс="форма-контроль" значение = модель.телефон заполнитель="Телефон" шаблон="[0-9]*" максимальная длина = "30" onkeydown="" key-down="validateInput" }} {{/если}} Мне нужен условный рендеринг и обернуть его в if-конструкцию. В нем я использую метод communicationPreferenceIs контроллера для проверки значения. Вот его код:
App.EditController = Ember.Controller.extend(Ember.Evented, { communicationPreferenceIs: функция (предпочтение) { const model = this.get('model'); if (!model.communicationPreference || !model.communicationPreference.name) { вернуть ложь; } const currentPreference = model.communicationPreference.name; вернуть currentPreference === предпочтение; }.property('model.communicationPreference'), } Итак, при рендеринге я получаю ошибку Ember:
«Утверждение не выполнено: не удалось найти помощника с именем «communicationPreferenceIs»» Я поэкспериментировал и обнаружил, что этот метод работает:
communicationPreferencePhone: function() { const model = this.get('model'); возвращаться ( model.communicationPreference && model.communicationPreference.name === 'Телефон' ); }.property('model.communicationPreference'), если я использую его в режиме:
{{#if communicationPreferencePhone }} работает хорошо. Как заставить communicationPreferenceIs работать более универсально?
Мобильная версия