Я постоянно отказываюсь внедрить услугу $log
, экономя путь сохранения в класс контроллера компонента.Невозможно ввести услугу в угловой js
Чтобы проверить инъекцию, сохраните, я добавил ng-strict-di
в свое приложение. Это в терминах вызывает SearchResultController is not using explicit annotation and cannot be invoked in strict mode
, что хорошо, поскольку я полагаюсь на неявную инъекцию прямо сейчас.
Поэтому я добавил явное введение в мою реализацию компоненты:
import htmlTemplate from './searchInput.html';
class SearchInputController {
constructor($log) {
this._log = $log;
this.searchText = 'Text to search for';
}
handleUpdate() {
this.onChange({value: this.searchText});
}
doubleMe(i) {
this._log.debug('SearchInputController.doubleMe: i='+i);
return i+i;
}
}
SearchInputController.$inject = ['$log'];
let searchInputComponent = {
template: htmlTemplate,
controller: SearchInputController,
bindings: {
onChange: '&'
}
};
export default searchInputComponent;
Это не имеет никакого эффекта сообщение об ошибке все еще жалуется отсутствующей инъекцией.
Я также пробовал ng-annotate-loader и ng-annotate-webpack-plugin. А также попробовали аннотации типа /*@ngInject*/
и 'ngInject';
. Все это не имеет никакого эффекта.
Любые идеи, как заставить инъекцию зависимости работать?
Вы говорите, что сообщение об ошибке жалуется на 'SearchResultController', но вы отправили нам источник для' SearchInputController'. – Duncan
Спасибо! Я просто пропустил это. Спас мой день :-). – BetaRide