Javascript 返回未定义的angular.element(';#home';)
我正在使用ui路由器和angularJS 1.4,我想访问控制器作用域。 我第一次使用angular.element('#home').scope().HomeCtrl时,它工作得很好。 第二次它甚至没有返回“#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
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控制器的作用域,仅此而已。看看代码,我说它在第一个案例中有效,但在第二个案例中无效。