首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在index.html中设置多个ui视图时不显示

在index.html中设置多个ui视图时不显示
EN

Stack Overflow用户
提问于 2015-03-30 20:10:07
回答 1查看 105关注 0票数 1

我正在尝试实现一些东西,如多名视图 wiki页面中的ui-router所示。该示例如下:

代码语言:javascript
运行
复制
$stateProvider
  .state('report', {
    views: {
      'filters': { ... templates and/or controllers ... },
      'tabledata': {},
      'graph': {},
    }
  })

按照下面所示的当前设置,路由不起作用。不知道我在这里做错了什么?

我当前的index.html如下所示:

代码语言:javascript
运行
复制
<body>
    <div ui-view="anonymous"></div>
    <div ui-view="home"></div>
</body>

然后我的app.js:

代码语言:javascript
运行
复制
app.constant("AccessLevels", {
    anon: 0,
    user: 1
});

    app.config(["$stateProvider", "$urlRouterProvider", "AccessLevels", function ($stateProvider, $urlRouterProvider, AccessLevels) {

        /* ANONYMOUS USERS */
        $stateProvider
            .state('anon', {
                abstract: true,
                template: '<ui-view/>',
                data: {
                    access: AccessLevels.anon
                }
            })
            .state('anon.login', {
                url: '/login',
                views: { 
                    anonymous: {
                        templateUrl: 'Client/scripts/app/partials/account/login.html',
                        controller: 'loginCtrl'
                    }
                }
            })
            .state('anon.register', {
                views: {
                    anonymous: {
                        url: '/register',
                        templateUrl: 'Client/scripts/app/partials/account/registration.html',
                        controller: 'registerCtrl'
                    }
                }
            });

        /* AUTHENTICATED USERS */
        $stateProvider
            .state('user', {
                abstract: true,
                template: '<ui-view/>',
                data: {
                    access: AccessLevels.user
                }
            })
            .state('user.home', {
                views: {
                    'home': {
                        url: '/home',
                        templateUrl: 'Client/scripts/app/partials/home/dashboard/index.html',
                        controller: 'homeCtrl'
                    }
                }
            })
            .state('user.deliveries', {
                views: {
                    'home_content': {
                        url: '/home/deliveries',
                        templateUrl: 'Client/scripts/app/partials/home/deliveries/deliveries.html',
                        controller: 'deliveryCtrl'
                    }
                }
        });

        $urlRouterProvider.otherwise('/login');
    }]);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-31 06:08:18

通常,如果我们针对父对象,我们可以使用简化的,也就是所谓的相对视图目标名。这不是你的案子,因为

代码语言:javascript
运行
复制
.state('anon', {
    abstract: true,
    template: '<ui-view/>', // parent contains unnamed view
    ... 
})
.state('anon.login', {
    url: '/login',
    views: { 
        anonymous: { // this view is not in parent

所以我们必须使用绝对命名

代码语言:javascript
运行
复制
.state('anon.login', {
    url: '/login',
    views: { 
        'anonymous@': { // no we target root
        // realtive
        '' : { // here we target unnamed parent view
        // absolute
        '@anon' : { //the same as the line above

一个指向医生的链接:

视图名称-相对名称与绝对名称

在幕后,每个视图都分配一个遵循viewname@statename方案的绝对名称,其中视图名称是视图指令中使用的名称,状态名称是状态的绝对名称,例如contact.item。您还可以选择用绝对语法编写视图名称。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29355369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档