Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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 返回未定义的angular.element(';#home';)_Javascript_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript 返回未定义的angular.element(';#home';)

Javascript 返回未定义的angular.element(';#home';),javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我正在使用ui路由器和angularJS 1.4,我想访问控制器作用域。 我第一次使用angular.element('#home').scope().HomeCtrl时,它工作得很好。 第二次它甚至没有返回“#home”元素,您可以在代码段中找到更多细节 是什么导致了这种行为 var modifyBoardState = { name: "root.main.home.modify", url: "/modify/{boa

我正在使用ui路由器和angularJS 1.4,我想访问控制器作用域。 我第一次使用angular.element('#home').scope().HomeCtrl时,它工作得很好。 第二次它甚至没有返回“#home”元素,您可以在代码段中找到更多细节

是什么导致了这种行为

            var modifyBoardState = {
            name: "root.main.home.modify",
            url: "/modify/{boardId}",
            authenticate: true,
            onEnter: ['DataStore', 'board', '$state', function(DataStore, board, $state) { 
                var vm = angular.element('#home').scope().vm; // This one works fine.
                vm.currentBoard.name = board.getName();
                vm.currentBoard.colorIndex = board.getColorIndex();
                vm.currentBoard.iconIndex = board.getIconIndex();
                vm.colorArray[vm.getPaletteColors()[board.getColorIndex()]] = 'active';
                vm.iconArray[vm.getPaletteIcons()[board.getIconIndex()]] = 'active';
                vm.addBoard = function() {
                    board.modify(vm.currentBoard.name, vm.currentBoard.colorIndex, vm.currentBoard.iconIndex);
                    $state.go('root.main.home');
                };
            }],
            onExit: ['$mdMenu', function($mdMenu) {
                $mdMenu.hide();
                // This one returns undifined.
                var vm = angular.element('#home').scope().vm;
            }],
            resolve: {
                board: ['DataStore', '$stateParams', function(dataStore, $stateParams) {
                    return dataStore.fetchBoard($stateParams.boardId)
                        .then(function(board) {
                            return board;
                        });
                }]
            }
        };

要在状态之间传递数据,可以使用$stateProvider,并使用data参数传递DOM元素。

从控制器访问DOM元素不可靠且不起作用。你做错了。考虑共享数据的服务。尝试将<代码>调试器< /代码>语句作为<代码>的第一行> OnEng/<代码>,然后在DeVoToE打开时再加载该页,然后进行EVE和比较。我坚持认为在OneNet部分,它是有效的,但在onExit部分,它不是。我只想访问spécific控制器的作用域,仅此而已。看看代码,我说它在第一个案例中有效,但在第二个案例中无效。