angularjs – angular ui-route state parent和resolve(嵌套解析)

前端之家收集整理的这篇文章主要介绍了angularjs – angular ui-route state parent和resolve(嵌套解析)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下情况:

> index.html页面加载角度并包含:ui-view
> layout.html页面包含解析服务器数据的左侧菜单
> homepage.html使用layout.html作为其父级,但需要从服务器解析自己的数据.

问题是:当我解决孩子没有解决的父母时,
当我删除父决心时,孩子解析.

你能帮帮我吗,让我知道我做错了什么?

app.js

$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',CommonService)
            {
                return resolve_homepage($q,CommonService)
            }
        }
    })
解析功能应该适用于父级和子级.有链接working plunker.

两个解析都将被触发,ui-router将一直等到它们都被执行.在孩子中,我们可以为父母解决这些问题,也可以自己解决.所以我建议更改名称(但不需要)并按照以下方式执行:

.state('layout',{
    url: "",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",resolve : {
        result_data_child: function ($q,CommonService)
             var deferred = $q.defer();
             $timeout(function(){
                deferred.resolve("from a child");
             },500);
            return deferred.promise;
        }
    }

现在,我们有两个可用的参数:result_data和result_data_child.所以这些可能是我们的控制器:

.controller('LayoutController',function ($scope,$state,result_data) {
    $scope.state = $state.current;
    $scope.result_data = result_data;
})
.controller('HomepageController',result_data,result_data_child) {
    $scope.state = $state.current;
    $scope.result_data_parent = result_data;
    $scope.result_data_child  = result_data_child;
})

概要.我们可以看到here,解析功能对两者都有效.在允许此状态之前,导航到子节点时,必须同时解析(父节点和子节点).

原文链接:https://www.f2er.com/angularjs/143292.html

猜你在找的Angularjs相关文章