die*_*lar 65 javascript angularjs lodash
我正在尝试使用lodash在ng-repeat指令中使用它,这样:
<div ng-controller="GridController" ng-repeat="n in _.range(5)">
<div>Hello {{n}}</div>
</div>
Run Code Online (Sandbox Code Playgroud)
存在GridController:
IndexModule.controller('GridController', function () {
this._ = _
})
Run Code Online (Sandbox Code Playgroud)
但是没有工作,所以没有重复.如果我改变指令ng-repeat="i in [1,2,3,4,5]"它将工作.
lodash已经包含<script>在<header>之前angular.我怎样才能使它工作?
wir*_*res 109
我更喜欢全局引入'_'并且可以注入测试,请参阅我对这个问题的回答. 在控制器中使用下划线
var myapp = angular.module('myApp', [])
// allow DI for use in controllers, unit tests
.constant('_', window._)
// use in views, ng-repeat="x in _.range(3)"
.run(function ($rootScope) {
$rootScope._ = window._;
});
Run Code Online (Sandbox Code Playgroud)
Thi*_*obo 58
我只是想对@beret和@ wire的回答添加一些说明.他们肯定帮助并得到了它的主旨,但整个过程的顺序可能适合某人.这就是我用lodash建立我的角度环境的方法,并让它与yeoman gulp-angular合作以正常使用
bower install lodash --save (这增加了凉亭和保存给凉亭json)
修改bower json以在角度之前加载lodash.(这有助于你使用gulp注入并且不想手动将其放入index.html.否则在角度链接之前将其放入index.html)
按@ wire的方向创建一个新常量.
Run Code Online (Sandbox Code Playgroud)'use strict'; angular.module('stackSample') // lodash support .constant('_', window._);
Run Code Online (Sandbox Code Playgroud).filter('coffeeFilter', ['_', function(_) {...}]);
Run Code Online (Sandbox Code Playgroud).controller('SnesController', function ($scope, _) { $scope._ = _; })
希望这有助于某人建立自己的网站.:)
Mar*_*ine 29
ng-repeat需要一个Angular表达式,它可以访问Angular范围变量.因此,分配给它,将其分配_给您注入控制器this的$scope对象:
IndexModule.controller('GridController', function ($scope) {
$scope._ = _;
})
Run Code Online (Sandbox Code Playgroud)