将下划线或 lodash 附加到 angular
Attaching underscore or lodash to angular
可以将 underscore.js 变量附加到 angular 变量吗?所以我可以像这样调用下划线: angular._
?由于下划线不太可能在测试时被嘲笑,而且我们不能声明全局变量?
如果是,我应该将其添加到 angular.js 应用程序的哪一部分?
我觉得angular不加下划线直接用比较好
我见过的最好的方法是依赖注入。
看看这个 link 到 ng-underscore link
或
这个linkangular-下划线link
我更喜欢在它自己的可注入模块中创建一个包装器服务,如下所示:
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
您将使用什么测试套件?
如果您使用的是业力,您可以在文件选项下的业力配置中添加任何第三方库。这些文件将在浏览器中可用,并且可供您的测试访问。无需将库包装在 angular 服务中或将其附加到 angular。
如果您想使用下划线,只需将其添加到您的范围即可
在控制器中执行以下操作
$scope._ = _;
现在您可以在 html 模板中使用所有下划线功能,例如
<div ng-repeat="value in _.filter(list, ...)"></div>
可以将 underscore.js 变量附加到 angular 变量吗?所以我可以像这样调用下划线: angular._
?由于下划线不太可能在测试时被嘲笑,而且我们不能声明全局变量?
如果是,我应该将其添加到 angular.js 应用程序的哪一部分?
我觉得angular不加下划线直接用比较好
我见过的最好的方法是依赖注入。
看看这个 link 到 ng-underscore link
或
这个linkangular-下划线link
我更喜欢在它自己的可注入模块中创建一个包装器服务,如下所示:
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
您将使用什么测试套件?
如果您使用的是业力,您可以在文件选项下的业力配置中添加任何第三方库。这些文件将在浏览器中可用,并且可供您的测试访问。无需将库包装在 angular 服务中或将其附加到 angular。
如果您想使用下划线,只需将其添加到您的范围即可
在控制器中执行以下操作
$scope._ = _;
现在您可以在 html 模板中使用所有下划线功能,例如
<div ng-repeat="value in _.filter(list, ...)"></div>