将underscore.js变量附加到角度变量上可以吗?所以我可以这样称呼下划线:angular._
?由于下划线不太可能在测试中被嘲笑,并且我们不能声明全局变量?
如果是这样,我应该在我的angular.js应用程序的哪一部分添加它?
我认为最好不要在下角附加下划线,而是直接使用下划线。
我更喜欢在它自己的可注入模块中创建包装服务,例如:
angular.module('underscore.service', [])
.factory('_', function () {
return window._; // assumes underscore has already been loaded on the page
});
如前所述,您应该像平常一样在HTML中的angular之前包含underscore.js。
此方法允许使下划线在测试环境中可访问。
如果使用ES6模块,则可以将其导入,如果使用iife方法,则可以将其注册为常量,然后再注入它
angular.module("app").constant("_", _);
仍然建议使用es6体系结构。您可以看一下this
您将使用什么测试套件?
如果您使用的是业力,则可以在文件选项下的业力配置中添加任何第三方库。这些文件将在浏览器中可用,并且可供您的测试访问。无需将lib包装在角度服务中或将其附加到角度。
如果您想使用下划线,您只需将其添加到您的范围内
在控制器中执行以下操作
$scope._ = _;
现在您将在HTML模板中使用所有下划线功能,例如
<div ng-repeat="value in _.filter(list, ...)"></div>