Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在没有html的情况下使用angularjs(过滤服务)(用于chrome扩展)_Javascript_Angularjs_Google Chrome Extension - Fatal编程技术网

Javascript 如何在没有html的情况下使用angularjs(过滤服务)(用于chrome扩展)

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扩展中使用filter 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,都需要为它添加依赖项。您可以通过向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?我认为这会有所帮助:虽然这段代码可能会回答这个问题,但提供关于为什么和/或这段代码如何回答这个问题的附加上下文可以提高其长期价值。