在AngularJS控制器中使用第三方过滤器

时间:2014-07-10 15:37:26

标签: javascript angularjs filter

我正在开发一个AngularJS应用程序。我在观看中使用underscore.string。例如,我的视图中的代码如下所示:

<h3>Welcome { user.firstName | _.str: 'capitalize' }}</h3>

我需要在与此视图关联的控制器中使用大写功能。为了做到这一点,我有以下几点:

.controller('MyCtrl', function ($scope, $location, $filter) {
    $scope.user = null;
    $scope.defaultValue = null;

    $scope.initialize = function() {
      $scope.user = getUser();
      $scope.defaultValue = $filter('capitalize')('my value');
    };
    $scope.initialize();
})

一切正常,直到我尝试所有大写过滤器。我究竟做错了什么?我收到一条错误消息:

Unknown provider: capitalizeFilterProvider <- capitalizeFilter

我无法弄清楚我做错了什么。看起来奇怪的是它在我看来很好但现在我的控制器了。

1 个答案:

答案 0 :(得分:0)

在您的应用中将过滤器注册为依赖项

angular.module('app', ['ngRoute','capitalize']);

了解更多信息,请查看documentation

修改 创建角度过滤器并将其用作underscore.string库的包装:

angular.module('app', []).filter('capitalize', function() {
  return function(input) {
    return _.str.capitalize(input)
  };
});

在你的模板中:

<h3>Welcome { user.firstName | capitalize }}</h3>