加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 07:50:33 所属栏目:安全 来源:网络整理
导读:我有以下情况: index.html页面加载角度并包含:ui-view layout.html页面包含解析服务器数据的左侧菜单 homepage.html使用layout.html作为其父级,但需要从服务器解析自己的数据. 问题是:当我解决孩子没有解决的父母时, 当我删除父决心时,孩子解析. 你能帮帮
我有以下情况:

> 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,解析功能对两者都有效.在允许此状态之前,导航到子节点时,必须同时解析(父节点和子节点).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读