将下划线或lodash连接到角度

时间:2015-07-09 08:53:31

标签: angularjs underscore.js

将underscore.js变量附加到angular变量是否可以?所以我可以称下划线为:angular._?由于下划线不太可能在测试时被模拟,我们不能声明全局变量?

如果是这样,我应该添加angular.js应用程序的哪一部分?

6 个答案:

答案 0 :(得分:11)

我更喜欢在它自己的可注射模块中创建一个包装器服务,如:



angular.module('underscore.service', [])
.factory('_', function () {
  return window._; // assumes underscore has already been loaded on the page
});




如上所述,您应该像往常一样在html中包含angular之前的underscore.js。

此方法允许在测试环境中访问下划线。

答案 1 :(得分:7)

我认为最好不要将下划线附加到角度,而是直接使用它。

答案 2 :(得分:0)

我看到这样做的最好方法是依赖注入它。

点击此链接到ng-underscore link

此链接有角度下划线link

答案 3 :(得分:0)

如果您使用ES6模块,您只需导入它,如果您使用iife方法,您可以将其注册为常量,然后将其注入

angular.module("app").constant("_", _);

我仍然会推荐es6架构。您可以查看this

答案 4 :(得分:0)

您将使用哪种测试套件?

如果你正在使用业力,你可以在files选项下的karma配置中添加任何第三方lib。这些文件将在浏览器中提供,并可供您的测试访问。无需将lib包装在角度服务中或将其附加到角度。

答案 5 :(得分:0)

如果您想使用下划线,只需将其添加到您的范围

即可

在您的控制器中执行以下操作

$scope._ = _;

现在你使用html模板中的所有下划线功能,如

<div ng-repeat="value in _.filter(list, ...)"></div>