未知提供者:$ elementProvider< - $ element< - DragListController

时间:2016-10-26 13:17:09

标签: javascript angularjs angularjs-directive angularjs-scope angular-ui-router

这是我的代码。我得到并错误未知提供者:$ elementProvider< - $ element< - DragListController。我仍然是anuglar js的新人

        angular
            .module('taskManager')
            .controller('DragListController', DragListController);

        DragListController.$inject = ['$scope', '$element', 'dragularService'];
        function DragListController($scope, $element, dragularService){

            var vm = this;
            vm.items = {};

            vm.todoList = [];
            vm.inProgList = [];
            vm.completedList = [];

            $scope.items = [];

            vm.init = function($element) {

                var database = firebase.database();
                database.ref('/task').once('value').then(function(snapshot) {

                    $scope.$apply(function(){

                        vm.items = snapshot.val();
                        //Manipulating data from Firebase
                        angular.forEach(vm.items, function(value) {
                            angular.forEach(value, function(data){
                                if(data == 'completed'){
                                    vm.completedList.push(value);
                                }
                                if(data == 'to-do'){

                                    vm.todoList.push(value);
                                }
                                if(data == 'on the process'){
                                    vm.inProgList.push(value);
                                }
                            });
                        });

                        dragularService($element.children().eq(0).children(), {containersModel: vm.todoList});


                    });

                });


            }/*End of init function*/


            vm.init($element);

        }

这是我的app.js

    angular.module('taskManager', [
    'dragularModule',
    'ngRoute',
    'googlechart'
]);

错误:[$ injector:unpr]
我正在为我的应用程序使用luckylooke / dragular。拖放功能。请帮忙。

这是我的routes.js

    angular.module('taskManager')
    .config(function($routeProvider) {

        $routeProvider
            .when('/task',{
                templateUrl: 'views/task-view.html',
                controller: 'TaskListController as taskList',
                resolve: {

                }
            })
            .when('/',{
                templateUrl: 'views/task.html',
                controller: 'TaskListController as taskList'
            })
            .when('/all-list',{
                templateUrl: 'views/all-list.html',
                controller: 'TaskListController as taskList'
            })
            .when('/theme3',{
                templateUrl: 'views/theme3.html',
                controller: 'DragListController as dragList'
            });

    });                                                                                                                   

2 个答案:

答案 0 :(得分:2)

$element不是提供者。它无法注入。它在链接功能中使用指令。您将直接按照参数$scope, $element, attr, ctrl的顺序获得。不要试图在控制器中注入$element。如果可以,请使用指令。

答案 1 :(得分:0)

确保你已经包含的index.js

<script src="<PATH TO DragListCtrl.js>"></script>