Привет, я только что начал работу на угловом. Я использую AngularJS 1.2.4. Всякий раз, когда я пытаюсь внедрить фильтр в мой контроллер я получаю следующее сообщение об ошибке:Невозможно впрыскивать фильтры в контроллер для AngularJS
Error: error:unpr Unknown Provider Unknown provider: senderReceiverDetailInfoProvider <- senderReceiverDetailInfo <- senderReceiverFilter
Вот мои app.js:
var myApp = angular.module("myapp", []);
Вот мои myFilter.js:
myApp.filter('senderReceiver',function(senderReceiverDetailInfo,index){
conole.log("i",index);
if(senderReceiverDetailInfo.description != ''){
return true;
}else{
return false;
}
});
Это мой контроллер.js
myApp.controller("myCtrl",'$scope','$http','PaymentService','senderReceiverFilter',
function($scope,$http,PaymentService,senderReceiverFilter){
$scope.sendReceiveFilter = senderReceiverFilter;
}]);
И наконец вот мой index.html, в котором я пытаюсь использовать фильтр:
<div ng-repeat="detailInfo in senderReceiverDetail | filter : sendReceiveFilter">
<label>{{$index + 1}}.</label><label>Type : {{detailInfo.lineType}}</label>
<label>Description : {{detailInfo.description}}</label>
</div>
</div>
И, наконец, вот мои вопросы: 1) Почему инъекции не работает? 2) Я использую правильно введенный фильтр (предположим, что он как-то правильно введен) в моем index.html? 3) Также я правильно определил фильтры или мне нужно объявить их в отдельном модуле? Если я объявляю их в отдельном модуле, то как их вводить? . если я следующий вместо того, что я делаю сейчас для объявления фильтра:
angular.module('myfilters',[]).filter('senderReceiver',function(senderReceiverDetailInfo,index){
conole.log("i",index);
if(senderReceiverDetailInfo.description != ''){
return true;
}else{
return false;
}
});
, а затем впрыснуть над модулем в моем MyApp в зависимости следующим образом:
angular.module('myapp',['myfilters']);
Тогда как использовать/впрыснуть фильтр, определенный в модуле «myfilters» в контроллере, который я определил в модуле «myapp»?
4) И, наконец, что является лучшим aproach? объявление фильтров в полностью spearate-модуле или определение его на основном модуле, таком как контроллер и службы?
Я знаю, что я мало осведомлен об инъекции зависимостей, кроме основного синтаксиса. Но я думаю, это то, что мне нужно. Благодарю.
Вы должны прикрепить его к своему модулю, а не вводить его в контроллер –
@PatrickReck Можете ли вы подробно остановиться на том, что вы подразумеваете под приложением? означает ли это, что я должен использовать второй метод? Если да, то можете ли вы дать небольшой пример кода о том, как его использовать в ng-repeat на html? –
Что такое senderReceiverDetailInfo? –