Javascript 如何在没有html的情况下使用angularjs(过滤服务)(用于chrome扩展)
我尝试在我的chrome扩展中使用filter angularjs服务。但是我不知道如何在我的函数中获取/注入它。 目前我有:Javascript 如何在没有html的情况下使用angularjs(过滤服务)(用于chrome扩展),javascript,angularjs,google-chrome-extension,Javascript,Angularjs,Google Chrome Extension,我尝试在我的chrome扩展中使用filter angularjs服务。但是我不知道如何在我的函数中获取/注入它。 目前我有: chrome.contextMenus.onClicked.addListener(function(info, tab) { result = $filter('filter')(jsonArray, info.selectionText, function (actual, expected) { return actual.toString
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,都需要为它添加依赖项。您可以通过向main函数提供$filter作为参数来添加依赖项 如果添加内部控制器:
.controller('MainCtrl', function($scope, $filter) {
$scope.originalText = 'hello';
$scope.filteredText = $filter('uppercase')($scope.originalText);
});
app.factory('myService', ['$filter', function($filter)
如果在工厂/服务内部添加:
.controller('MainCtrl', function($scope, $filter) {
$scope.originalText = 'hello';
$scope.filteredText = $filter('uppercase')($scope.originalText);
});
app.factory('myService', ['$filter', function($filter)
此链接可帮助您了解更多信息:
解决方案是:
var myInjector = angular.injector(["ng"]);
var $filter = myInjector.get("$filter");
在函数isi没有控制器/提供程序/模块的控制器/提供程序/模块中注入依赖项。我只想单独使用过滤器。你不需要所有的角度来过滤一个数组。它是从ES5开始内置的,请参见Ok!但我也使用$http获取json数组。。那么一般来说,如何在没有控制器/提供者/模块的情况下使用angularjs服务?好吧,但是如何在没有控制器的情况下使用myService?我认为这会有所帮助:虽然这段代码可能会回答这个问题,但提供关于为什么和/或这段代码如何回答这个问题的附加上下文可以提高其长期价值。