Javascript 如何将angularjs过滤器重构为指令?
我有一个复杂的过滤器,希望将其重构为一个指令 让我们举一个简单的例子:Javascript 如何将angularjs过滤器重构为指令?,javascript,angularjs,Javascript,Angularjs,我有一个复杂的过滤器,希望将其重构为一个指令 让我们举一个简单的例子: app.filter('tolower', function() { return function(input) { return input.toLowerCase(); //simple example } }); <div ng-bind-html="'TEST' | tolower"></div> app.filter('tolower',function
app.filter('tolower', function() {
return function(input) {
return input.toLowerCase(); //simple example
}
});
<div ng-bind-html="'TEST' | tolower"></div>
app.filter('tolower',function(){
返回函数(输入){
return input.toLowerCase();//简单示例
}
});
我如何重构它,以便使用如下指令:
<div tolower="TEST"></div>
在指令中添加一个带有“tolower”的作用域,如下所示,以便您可以将tolower用作属性:
.directive('MyDirective', function(config) {
...
scope: {
tolower: '='
},
...
});
然后,在控制器处理程序中:
function MyDirectiveController($filter) {
var vm = this;
...
vm.loweredValue = $filter('tolower')(vm.tolower);
...
}
最后,您可以通过将loweredValue注入元素的DOM来使用它
function MyDirectiveController($filter) {
var vm = this;
...
vm.loweredValue = $filter('tolower')(vm.tolower);
...
}