当前位置: 首页 > 面试题库 >

AngularJS UI路由器抽象状态与解决

隆扬
2023-03-14
问题内容

是否可以使用需要解析数据的ui-router来建立抽象状态?我需要使用个人资料信息加载页面的上半部分,然后在页面底部添加一个用于加载其他详细信息的子导航。这个想法是,抽象状态每次都会加载配置文件信息,而不管我处于哪个子状态。它似乎不起作用。

例:

.state('app.profile', {
    abstract: true,
    url: 'user/:username',
    views: {
        content: {
            templateUrl: 'views/frontend/profile.html',
            controller: 'ProfileCtrl',
            resolve: {
                data: ['$stateParams', 'ProfileService', function ($stateParams, ProfileService) {
                    var username = $stateParams.username;
                    return ProfileService.getProfile(username);
                }]
            }
        }
    }
})
.state('app.profile.something', {
    url: '',
    views: {
        profile: {
            templateUrl: 'views/frontend/profile.something.html',
            controller: 'ProfileCtrl',
            resolve: {
                data: ['$stateParams', 'ProfileService', function ($stateParams, ProfileService) {
                    var username = $stateParams.username;
                    return ProfileService.getProfileSomething(username);
                }]
            }
        }
    }
})

问题答案:

和它的 plnkr

因此,在我们的情况下,我们需要在父级中进行此更改

resolve: {
    dataParent: ['$stateParams', 'ProfileService', function ($stateParams, ProfileService) {
        var username = $stateParams.username;
        return ProfileService.getProfile(username);
    }]
}

和这个孩子

resolve: {
    dataChild: ['$stateParams', 'ProfileService', function ($stateParams, ProfileService) {
        var username = $stateParams.username;
        return ProfileService.getProfileSomething(username);
    }]
}

因此,与其在父母和孩子中使用resolve:{data:…},不如说它们是:

// parent state
resolve : { dataParent: ... } 
// child state
resolve : { dataChild: ... }

一个有效的例子应该比其他例子更好。



 类似资料:
  • 我有以下Vuex商店(main.js): 我还为Vue路由器(routes.js)定义了以下路由: 我试图这样做,如果Vuex存储了对象,并且将属性设置为,则路由器会将用户重定向到登录页面。 我有这个: 问题是,我不知道如何从函数内部访问Vuex商店的对象。 我知道我可以在组件中使用来设置路由器保护逻辑,但这会使每个组件变得杂乱无章。我想在路由器级别集中定义它。

  • 所以我面临的问题是,当我点击Hover Books组件中的链接进入一个新页面时,我可以在其中呈现图书状态,但当我按下它时,什么也没有发生。我知道错误可能在哪里(路由)。如果你能帮我修好它,我将不胜感激。谢谢

  • 问题内容: 有没有办法获取当前状态的先前状态? 例如,我想知道当前状态B之前的先前状态是什么(以前的状态本来是状态A)。 我无法在ui-router github文档页面中找到它。 问题答案: ui-router转换后不会跟踪以前的状态,但是会在状态更改时广播该事件。 您应该能够从该事件中捕获先前状态(即将离开的状态):

  • 问题内容: 我希望能够使用ui-router转换为状态并传递任意对象。 我知道通常会使用它,但是我相信此值会插入URL中,并且我不希望用户能够对此数据添加书签。 我想做这样的事情。 有没有办法在不将值编码到URL的情况下执行此操作? 问题答案: 在0.2.13版中,您应该可以将对象传递到$ state.go, 然后访问控制器中的参数。 myParam将不会显示在URL中。 资源: 请参阅chris

  • 本文向大家介绍详解vue路由篇(动态路由、路由嵌套),包括了详解vue路由篇(动态路由、路由嵌套)的使用技巧和注意事项,需要的朋友参考一下 什么是路由?网络原理中,路由指的是根据上一接口的数据包中的IP地址,查询路由表转发到另一个接口,它决定的是一个端到端的网络路径。 web中,路由的概念也是类似,根据URL来将请求分配到指定的一个'端'。(即根据网址找到能处理这个URL的程序或模块) 使用vue

  • 问题内容: 我将UI路由器用于主菜单的选项卡以及一种状态(用户)内的链接。用户状态有一个用户列表,当单击一个用户时,我只想重新加载子状态,但是它正在重新加载子状态和父状态(用户)。 这是我的代码: 这是单击用户时在我的父控制器(UserController)中调用的函数: 假设我处于users.userGroups状态,当我单击另一个用户时,只希望重新加载users.userGroups状态。这可