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);
...
}