我正在使用ui-router和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;
});
}]
}
};
答案 0 :(得分:0)
要在状态之间传递数据,您可以使用$ stateProvider,并使用数据参数传递DOM元素。