Ember.js: невозможно прочитать свойство isHelperInstance неопределенного
Я впервые внедряю свое приложение в мою промежуточную среду, но у меня возникает ошибка... Один из моих маршрутов не может обработать свой шаблон. Я вижу эту ошибку в консоли:
Uncaught TypeError: Cannot read property 'isHelperInstance' of undefined
Я не видел эту ошибку в разработке.
я использую ember-cli-rails
обслуживать приложение с помощью Heroku.
Как я могу решить эту проблему?
3 ответа
Причиной этой ошибки была ссылка на компонент в несуществующем шаблоне. Причина, по которой я не увидел ошибку в разработке, заключается в том, что в моей среде разработки не было тех же данных, что и при подготовке. Поэтому я никогда не видел ту часть моего шаблона, которая могла бы вызвать ошибку.
У меня действительно была эта ошибка из-за неправильной ссылки на помощника. Моего помощника звали concatTwo()
но в руле вы должны ссылаться на него, используя kabob-case, который будет concat-two
, У нас было несколько ссылок на руль concatTwo
который сломал эти страницы и показал эту ошибку. Неудивительно, что рефакторинг с использованием версии kabob case исправил ошибку.
Как ни странно, это не вызывало никаких проблем в среде разработки, даже когда она запускалась с точно такими же данными.
Эмбер-2.6.3
Чтобы моя среда разработки продемонстрировала такое поведение, мне пришлось очистить свой node_modules
/ и повторно npm-install
все. Я также очистил мой bower_components
и повторно bower install
и их тоже Не уверен, что сделал разницу.
Я думаю, что согласен с @vkoves по поводу кейса для ваших помощников. Но кроме того, я думаю, что вы должны быть осторожны с использованием точечных обозначений при обращении к помощникам или компонентам.
Мы вложили некоторые из наших помощников формата в папку с именем formatters
, Они выглядят примерно так с точки зрения нашего приложения Ember: app/helpers/formatters/date
Ранее мы обращались к этому помощнику в нашем приложении как: {{formatters.date ...}}
или же (formatters.date ...)
,
"После некоторых недавних изменений в экосистеме Node/NPM" кажется, что теперь мы должны обращаться к нашему вложенному помощнику, используя косую нотацию вместо точечной нотации: {{formatters/date ...}}
или же (formatters/date ...)
Примечание стороны (Точечная нотация против косой черты)
Мы также только что обнаружили, что Ember-2.10 удаляет точечную нотацию для ссылок на компоненты... ее, очевидно, нет в примечаниях к выпуску. Мы должны исправить это везде в нашем приложении ( https://github.com/emberjs/ember.js/issues/14659).