Javascript 无法从角度控制器读取lodash属性
我已经开始玩loddash了,我有一个小的angular应用程序,我正试图开始工作。我看到过类似的关于这个和下划线的问题。但是看看答案,我没能把它装上 在我的app.js文件中,我创建了一个工厂来将Javascript 无法从角度控制器读取lodash属性,javascript,angularjs,lodash,Javascript,Angularjs,Lodash,我已经开始玩loddash了,我有一个小的angular应用程序,我正试图开始工作。我看到过类似的关于这个和下划线的问题。但是看看答案,我没能把它装上 在我的app.js文件中,我创建了一个工厂来将“\uu”注册到窗口 var app = angular.module("app", []) .constant('_', window._); app.factory('_', ['$window', function ($window) { return $window._; }]);
“\uu”注册到窗口
var app = angular.module("app", [])
.constant('_', window._);
app.factory('_', ['$window', function ($window) {
return $window._;
}]);
在我的html中,我在angular库之前加载了lodash
<script src="scripts/lodash.js"></script>
<script src="scripts/angular.js"></script>
<script src="scripts/angular-loader.js"></script>
<script src="scripts/angular-animate.js"></script>
<script src="app/app.js"></script>
<script src="app/treeController.js"></script>
<script src="app/treeviewDirective.js"></script>
<script src="app/test.js"></script>
页面构建和初始化良好,在函数nestAssociation()
中出现错误。当第一个lodash函数被调用时,.concat
我得到一个错误类型错误:无法读取未定义的的属性“concat”,这表示应用程序无法访问lodash函数,我认为这是因为服务没有正确注册'
有人能告诉我我错过了什么吗
提前谢谢我想您在控制器声明中遗漏了uu参考?试试这个:
app.controller("treeController", ['$scope', '_', function($scope, _) {
var vm = this;
function nestAssociation(node, oldCollection, newAggregates) {
var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
var selectedNode = node.parent;
var itemIndex = _.findIndex(oldCollection.children, function (o) { return o.parent == selectedNode; });
console.log(itemIndex);
}
如果在整个应用程序中将u注册为常量,也不确定是否需要依赖依赖项注入声明。我可能错了,就是这样。你是对的,我删除了常数,只是把它作为一种服务。不需要工厂和常数。。。用一个或另一个
app.controller("treeController", ['$scope', '_', function($scope, _) {
var vm = this;
function nestAssociation(node, oldCollection, newAggregates) {
var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
var selectedNode = node.parent;
var itemIndex = _.findIndex(oldCollection.children, function (o) { return o.parent == selectedNode; });
console.log(itemIndex);
}