[AngularJS] [UI-Router]在视图中显示视图

时间:2015-02-27 20:19:25

标签: javascript angularjs angular-ui-router

我不知道如何描述我的问题,但也许代码帮助:)

我想要的是什么:在views / accounts / index.html中显示create_modal.html

app.js:

angular.module('myApp', [
 'ui.router'
]).config(function($stateProvider) {
      $stateProvider
          .state('index', {
            url: '/',
            template: 'Index template'
          })
          .state('about', {
              url: '/about',
              template: 'About template'
          })
          .state('panel', {
              url: '/panel',
              templateUrl: 'views/panel/index.html'
          })
          .state('accounts', {
              url: '/panel/accounts',
              templateUrl: 'views/accounts/index.html'
            })
          .state('accounts.create', {
                views: {
                    create_modal: {
                        templateUrl: 'views/accounts/partials/create_modal.html'
                    }
                }
          })
});

主要index.html

<div class="container" ui-view></div>

视图/帐户/ index.html中

[...]
<div ui-view="create_modal"></div>
[...]

当我继续/ accounts /我看到accounts / index.html但是create_modal.html没有在视图中加载。 有任何想法吗 ?

2 个答案:

答案 0 :(得分:0)

我无法访问开发环境,但是您是否尝试为自己的帐户设置一个空网址。创建&#39;国家?

他们是如何做到的:

https://angular-ui.github.io/ui-router/sample/#/contacts

这里是源代码(查找&#34; contacts.list&#34;州):

https://angular-ui.github.io/ui-router/sample/app/contacts/contacts.js

希望有所帮助。

答案 1 :(得分:0)

为UI-View命名只是设置视图的名称,而不是将状态设置为您要使用的状态。您应该将UI-View命名为要调用名称的任何名称。

如果要测试它,可以尝试将UI-sref应用于锚标记,但您要做的是将$ state变量更改为所需的状态。

$state.go('accounts.create');

您可以尝试做的另一件事是设置该状态的URL并导航到该URL。

.state('accounts', {
    url: '/panel/accounts',
    templateUrl: 'views/accounts/index.html'
})
.state('accounts.create', {
    url: '/create',
    templateUrl: 'views/accounts/partials/create_modal.html'
});

希望有所帮助,我将包含UI-View的文档供您参考。

Click here!