Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法从角度控制器读取lodash属性_Javascript_Angularjs_Lodash - Fatal编程技术网

Javascript 无法从角度控制器读取lodash属性

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._; }]);

我已经开始玩loddash了,我有一个小的angular应用程序,我正试图开始工作。我看到过类似的关于这个和下划线的问题。但是看看答案,我没能把它装上

在我的app.js文件中,我创建了一个工厂来将
“\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);
    }