我尝试在我的chrome扩展中使用过滤器angularjs服务。但我不知道如何获得/注入它在我的功能。目前我有:
chrome.contextMenus.onClicked.addListener(function(info, tab) {
result = $filter('filter')(jsonArray, info.selectionText, function (actual, expected) {
return actual.toString().toLowerCase().indexOf(expected.toLowerCase()) == 0;
});
console.log(sug);
});
但是显然我有:$filter没有定义。我还想使用$http服务来获取我的jsonArray
无论您在哪里使用$filter,您都需要为其添加依赖项。您可以通过提供$filter作为main函数的参数来添加依赖项。
如果添加内部控制器:
.controller('MainCtrl', function($scope, $filter) {
$scope.originalText = 'hello';
$scope.filteredText = $filter('uppercase')($scope.originalText);
});
如果在工厂/服务中添加:
app.factory('myService', ['$filter', function($filter)
这个链接可以帮助您了解更多信息:在AngularJs的服务中注入dateFilter
解决方案是:
var myInjector = angular.injector(["ng"]);
var $filter = myInjector.get("$filter");