在AngularJS中,可以使用ui-router来实现路由和状态管理。要在过渡期间成功获取控制器,可以使用resolve属性来加载控制器所需的数据或执行任何必要的操作。
下面是一个包含代码示例的解决方法:
var app = angular.module('myApp', ['ui.router']);
app.config(function($stateProvider, $urlRouterProvider) {
// 设置默认路由
$urlRouterProvider.otherwise('/home');
// 配置状态和路由
$stateProvider
.state('home', {
url: '/home',
templateUrl: 'home.html',
controller: 'HomeController',
resolve: {
data: function($http) {
// 这里可以加载控制器所需的数据
return $http.get('data.json').then(function(response) {
return response.data;
});
}
}
});
});
app.controller('HomeController', function($scope, data) {
// 控制器逻辑
$scope.data = data;
});
Welcome to Home
{{ data }}
这样,当访问"/home"路由时,ui-view指令会将home.html模板加载到页面中,并且HomeController会成功获取到resolve中加载的数据。
请注意,resolve属性中的函数可以返回一个Promise对象,以便在数据加载完成之前显示加载状态或处理其他逻辑。