我正在尝试在AngularJS视图模板中使用Underscore / Lodash / _。这样我可以使用_如下所示:
<li ng-repeat="number in _.range(100, 125)"><!-- Some logic here --></li>
就此而言,我们可以使用Lodash的任何有用功能。
我们可以通过将_添加到控制器和指令的$ scope来实现这一点,如下所示:
$scope._ = _;
但我想进行一次性配置/更改,为每个视图模板的每个范围添加_。
我认为有用的一种方法是:
$rootScope._ = _; //Have this line in .run() method.
这适用于控制器和指令的所有视图。但这不适用于隔离范围指令的视图。我再次必须在指令定义中添加($ scope._ = _;)。
是否有可以实现此目的的一次性/单一地点更改/配置/代码?
注意:另一个问题How to make lodash work with Angular JS?专门讨论在ng-repeat中使用lodash。但我的问题是在每个视图模板(包括指令视图模板)中使用lodash。这就是我发现使用隔离范围指令的限制。
答案 0 :(得分:0)
这就是我这样做的方式:
步骤1:在index.html中包含underscore-min.js:
<!-- underscore to be included with angular js -->
<script src="lib/underscore/underscore-min.js"></script>
步骤2:创建一个&#39; _&#39;您可以注入所需的所有控制器的服务:
'use strict';
angular.module('myApp')
.factory('_', function($window) {
return $window._; // assumes underscore is loaded on the page
});
步骤3:通过注入&#39; _&#39;
来随时随地使用它'use strict';
angular.module('myApp')
.controller('AppCtrl', function($scope, _) {
var test = {
x: 10,
name: 'Ashish Bajaj'
}
var 2ndTest = _.clone(test); //use underscore
});