我在控制器外定义我的功能。我想在其中一个函数中使用$ filter。您可以看到它在控制器内部工作($ scope.test1有效),但它在doSomething中找不到$ filter函数。请帮我搞清楚。如果我在控制器内部移动doSomething它将起作用,但我不想这样做。
angular.module('myapp',[])
.controller('appController',['$scope','$filter',function($scope,$filter) {
$scope.doSomething = doSomething;
//WORKS
$scope.test1 = $filter('filter')([{typeid:1},{typeid:2}], { typeid: 2 }, true);
}]);
function doSomething($filter) {
//DOES NOT WORK
test2 = $filter('filter')([{typeid:1},{typeid:2}], { typeid: 1 }, true);
alert(test2);
}

答案 0 :(得分:2)
$filter
和$scope
), $filter
在控制器内部工作,而doSomething函数却没有。
我的问题是:
1)为什么在控制器外声明doSomething
?它是否可以重复使用?
2)您打算在哪里致电doSomething
?
答案 1 :(得分:0)
试试这个
angular.module('myapp',[])
.controller('appController',['$scope','$filter',function($scope,$filter) {
$scope.doSomething = function() {
doSomething($scope, $filter);
};
}]);
function doSomething($scope,$filter) {
$scope.name = 'hello world';
$scope.result = $filter('filter')([{typeid:1},{typeid:2}], { typeid: 1 }, true);
alert($scope.result);
}