1)当我们创建自定义过滤器时,是否必须在控制器中注入自定义过滤器以从控制器功能调用它?
我见过一个代码,其中人创建自定义过滤器并从控制器功能调用它...是否可能?只需看看代码。我还没有测试过。
<div ng-app="myapp" ng-controller="myctl">
<input id="btnok" type="button" value="ShowItems" ng-click="myfunction();" />
{{result}}
</div>
var app = angular.module("myapp", []);
app.filter("CustomFilter", function () {
return function (input) {
var out = [];
for (var i = input.length - 1; i >= 0 ; i--) {
out.push(input[i]);
}
return out;
}
});
app.controller("myctl", function ($scope, $filter) {
$scope.Items = ["C#", "JavaScript", "Html"];
$scope.myfunction = function () {
$scope.result = $filter('CustomFilter')($scope.Items);
}
})
只是看到名为CustomFilter
的自定义过滤器尚未注入控制器,但过滤器正在从控制器功能调用.....是不是?
2)在控制器中注入自定义过滤器时是否可以使用不同的名称?请参阅一个代码,该代码取自此网址http://budiirawan.com/angular-js-use-filter-controller/
(function(angular) {
'use strict';
angular.module('appModule')
.filter('hello', function() {
return function(input) {
return 'hello ' + input;
}
});
})(window.angular);
(function(angular) {
'use strict';
angular.module('appModule', [])
.controller('appController', ['$scope', '$filter', 'helloFilter', function($scope, $filter, helloFilter) {
$scope.name1 = $filter('hello')('budi');
$scope.name2 = helloFilter('sinta');
}]);
})(window.angular);
参见 hello 过滤器已经在控制器中注入了一个名为 helloFilter 的不同名称,它是如何工作的...如何角度解析或理解我们正在尝试指出你好过滤器?请指导我。
由于
答案 0 :(得分:3)
1)您不必将自定义过滤器注入控制器,您可以将$filter
注入控制器,而不是添加自定义过滤器。
2)Angular在我从网上看到的示例中进行依赖注入时添加过滤器过滤器(不是100%确定为什么我总是将$ filter注入我的控制器而不是过滤器本身)
http://sravi-kiran.blogspot.co.uk/2013/12/InvokingAngularJsFiltersFromController.html http://budiirawan.com/angular-js-use-filter-controller/ https://dzone.com/articles/invoking-angular-js-filters