Ng-lodash:ReferenceError:_未定义

时间:2015-08-21 20:30:08

标签: javascript angularjs

我使用de lodash封装器为AngularJS收到错误“ReferenceError:_ is not defined”,好像它没有被注入,但我检查了它。

但出于某种原因,如果我使用'lodash'这个词而不是'_',那就可以了。

$scope.example = _.filter($scope.mails, {folder: '!trash'});
// referenceError: _ is not defined

$scope.example = lodash.filter($scope.mails, {folder: '!trash'});
// works as it should

我的问题是,我很抱歉打扰你,但这是我应该担心的事情吗?

我在Angular比较陌生,我对像这样的奇怪的无法解释的错误感到很糟糕。

1 个答案:

答案 0 :(得分:1)

使用_来表示lodash只是将in添加到window对象时使用的约定。使用Angular和依赖注入(DI),在控制器代码中使用名称lodash可以说更清晰。

只需将注入参数的名称更改为控制器,即可始终使用_。请注意,这依赖于使用注入数组语法(无论如何这是一个好主意!):

app.controller('yourController', ['$scope', 'lodash', function($scope, _) {
  $scope.example = _.filter($scope.mails, {folder: '!trash'});
}]);

我说这不仅仅是使用lodash作为名称。