Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJs-在指令控制器内使用自定义过滤器_Javascript_Angularjs_Angularjs Filter - Fatal编程技术网

Javascript AngularJs-在指令控制器内使用自定义过滤器

Javascript AngularJs-在指令控制器内使用自定义过滤器,javascript,angularjs,angularjs-filter,Javascript,Angularjs,Angularjs Filter,场景 我有一个包含用户信息的用户数组,我执行一个ng repeat与生成HTML用户卡的自定义指令相结合,保持每个卡相对于单个用户的范围,在用户模型中有一个值,我需要在编译模板之前使用自定义过滤器进行过滤,因为如果我在模板中进行过滤,那么过滤所需的时间会使工具提示在值准备好之前不会显示,并且看起来好像有什么东西不起作用 到目前为止我的代码 // userCard directive angular.module('userCard', []).directive('UserCard', func

场景
我有一个包含用户信息的用户数组,我执行一个
ng repeat
与生成HTML用户卡的自定义指令相结合,保持每个卡相对于单个用户的范围,在用户模型中有一个值,我需要在编译模板之前使用自定义过滤器进行过滤,因为如果我在模板中进行过滤,那么过滤所需的时间会使工具提示在值准备好之前不会显示,并且看起来好像有什么东西不起作用

到目前为止我的代码

// userCard directive
angular.module('userCard', []).directive('UserCard', function() {
  return {
    restrict: 'EA',
    templateUrl: 'userCard.tpl.html',
    scope: {
        user: '='
    },
    controller: ['$scope', 'fromNowFilter', function($scope, fromNowFilter) {

        angular.forEach($scope.user.reminders, function(reminder) {
            reminder.last_sent = reminder.last_sent === null ? 'No reminder has been sent!' : fromNowFilter(reminder.last_sent);
        });
    }],
    link: function(scope, element) {
        // Add the base class to the user card element
        element.addClass('user-card');
    }
  };
});


// fromNow custom filter
angular.module('userCard').filter('fromNow', function() {
  return function(date) {
    return moment(date).fromNow();
  };
});


// The error I keep getting
Unknown provider: fromNowFilterProvider <- fromNowFilter
//用户卡指令
angular.module('userCard',[])。指令('userCard',function(){
返回{
限制:“EA”,
templateUrl:'userCard.tpl.html',
范围:{
用户:'='
},
控制器:['$scope','fromNowFilter',函数($scope,fromNowFilter){
angular.forEach($scope.user.remements,函数(提醒){
remention.last\u sent=remention.last\u sent==null?“未发送提醒!”:fromNowFilter(remention.last\u sent);
});
}],
链接:功能(范围、元素){
//将基类添加到用户卡元素
元素addClass('user-card');
}
};
});
//fromNow自定义过滤器
angular.module('userCard').filter('fromNow',function(){
返回函数(日期){
返回时刻(日期).fromNow();
};
});
//我不断犯的错误
未知提供程序:fromNowFilterProvider尝试注入并运行过滤器

controller: ['$scope', '$filter', function($scope, $filter) {
       var fromNowFilter = $filter('fromNow');
        angular.forEach($scope.user.reminders, function(reminder) {
            reminder.last_sent = reminder.last_sent === null ? 'No reminder has been sent!' : fromNowFilter(reminder.last_sent);
        });
    }],

刚刚尝试过,但仍然得到相同的错误,我试图遵循角度,我理解的是,您需要用
filter
后缀您的过滤器名称以注入它。@CupOfJoe是的,这也应该有效。。你确定你已经在你的应用程序中为过滤器加载了scipt吗?是的,我在模板中测试了它,它可以工作,但无法将它注入到指令控制器中。@CupOfJoe它对我有效。。看看这个演示。您使用的是哪个版本的angular?它应该类似于var fromNowFilter=$filter('fromNow');非变量fromNowFilter=$filter('fromNowFilter');我们不想连接过滤器