Angularjs 角度ui路由状态父级和解析(嵌套解析)
我有以下情况:Angularjs 角度ui路由状态父级和解析(嵌套解析),angularjs,angular-ui-router,Angularjs,Angular Ui Router,我有以下情况: index.html页面加载并包含:ui视图 layout.html页面包含解析服务器数据的左菜单 homepage.html使用layout.html作为其父项,但需要从服务器解析自己的数据 问题是:当我解析父对象时,子对象没有解析, 删除父解析时,子解析 你能帮我一下,让我知道我做错了什么吗 app.js $stateProvider .state('layout', { url: "", templateUrl: 'partials/
$stateProvider
.state('layout', {
url: "",
templateUrl: 'partials/layout.html',
controller:'LayoutController',
abstract:true,
resolve : {
result_data: function ($q,CommonService)
{
return resolve_layout($q,CommonService)
}
}
})
.state('homepage', {
url: "/homepage",
templateUrl: 'partials/homepage.html',
parent: 'layout',
controller:'HomepageController',
resolve : {
result_data: function ($q,CommonService)
{
return resolve_homepage($q,CommonService)
}
}
})
resolve
功能应适用于父级和子级。有一个链接到
两个解析都将被触发,ui-router
将等待,直到它们都被执行。在孩子身上,我们可以为父母解决问题,也可以为自己解决问题。因此,我建议更改名称(但不需要),并按如下方式进行:
.state('layout', {
url: "",
templateUrl: 'partials/layout.html',
controller:'LayoutController',
abstract:true,
resolve : {
result_data: function ($q, $timeout)//,CommonService)
{
//return resolve_homepage($q,CommonService)
var deferred = $q.defer();
$timeout(function(){
deferred.resolve("from a parent");
}, 500);
return deferred.promise;
}
}
})
.state('homepage', {
url: "/homepage",
templateUrl: 'partials/homepage.html',
parent: 'layout',
controller:'HomepageController',
resolve : {
result_data_child: function ($q, $timeout)//,CommonService)
{
//return resolve_homepage($q,CommonService)
var deferred = $q.defer();
$timeout(function(){
deferred.resolve("from a child");
}, 500);
return deferred.promise;
}
}
现在,我们有两个可用参数:result\u data
和result\u data\u child
。这些可能是我们的控制器:
.controller('LayoutController', function ($scope, $state, result_data) {
$scope.state = $state.current;
$scope.result_data = result_data;
})
.controller('HomepageController', function ($scope, $state, result_data, result_data_child) {
$scope.state = $state.current;
$scope.result_data_parent = result_data;
$scope.result_data_child = result_data_child;
})
总结。正如我们所看到的,resolve特性对这两者都有效。另外,在导航到child时,必须同时解析(父级和子级),才能允许此状态。是否尝试使用不同的名称命名两个解析?很高兴看到这一点;)享受ui路由导航到子级时是否可能不解析父级?