将过滤器的值赋给指令中的一个变量

Assign the filter value to a variable within a directive

本文关键字:一个 变量 指令 过滤器      更新时间:2023-09-26

我能够在我的控制器上做到这一点(标题),我想知道我是否也可以在我的指令上做到这一点。

假设我像这样将过滤器注入到指令中…

app.directive('ngDirective', 
    ['$compile','$filter',
    function ($compile, $filter) {
        'use strict';

在link函数中,我有以下内容:

var filter = $filter('i18n');
var requiredMessage = filter('is_required');

我知道在指令中我丢失了$作用域,这可能是原因。

编辑:这是我的代码预览柱塞http://plnkr.co/edit/u1L9SHdAvZnvEqwVBeJg

对如何解决这个问题有什么想法吗?

如果你想使用某个过滤器,你必须加载它。

下面是定义过滤器和加载到你的指令模块的例子。

http://plnkr.co/edit/61X6i32By8PA6W7BLh52?p =

预览
angular.module('myfilters', []).
filter('i18n', function() {
  return function() { return 'my message'; };
});
angular.module('myapp', ['myfilters']).
  directive('ngTest', function($compile, $filter) {
    'use strict';