我想在页面的一部分中使用ui-view和ui-router。但是由于某种原因,我无法显示我的模板“ app_usermng_table.html”。
这部分的主要代码如下:

1.路由器配置部分

(我已经在模块“ app”中添加了“ ui.router”依赖项。)

.state('app.usermng', {
              url: '/usermng',
              templateUrl: 'tpl/app_usermng.html',

              resolve: {
                  deps: ['uiLoad',
                    function( uiLoad ){
                      return uiLoad.load( ['js/controllers/usermng/usermng.js','css/usermng.css'] );
                  }]
              },
              onEnter: function(){
                console.log("enter usermng");
              }
          })
          .state('app.usermng.table',{
              url:'/table',
              templateUrl:'tpl/app_usermng_table.html',
              resolve:{
                deps:[
                    'uiload',
                    function(uiload){
                      return uiload.load(['js/controllers/usermng/usermngtable.js'])
                    }
                ]
              },
              onEnter: function(){
                console.log("enter usermng table");
              }

          })


2.app_usermng.html:

我想将模板放在

<div ui-view></div>


标签。

<div class="hbox hbox-auto-xs hbox-auto-sm" ng-controller="UsermngCtrl">
  <div ng-controller="UsermngCtrl">
    <div class="bg-light lter b-b wrapper-md">
      <h1 class="m-n font-thin h3">User Management</h1>
    </div>
  <div ui-view></div>
 </div>
</div>


3.usermng控制器

我添加代码

$state.transitionTo


希望当我进入状态“ app.usermng”时,状态“ app.usermng.table”可以显示在其父级中。

app.controller('UsermngCtrl',['$scope','$state',function($scope,$state){
   $state.transitionTo('app.usermng.table');
   console.log("table")
}]);


4.导航栏

我希望当我在导航栏上单击“ UserManagement”时,它跳转到“ app.usermng”状态。

<li ui-sref-active="active"> <a ui-sref="app.usermng"> <i class="glyphicon glyphicon-list-alt icon text-info-dker"></i> <span class="font-bold" translate="aside.nav.usermng">User Management</span> </a> </li>

但是,我所做的一切似乎都没有用……表部分未显示。控制台内容如下:

enter usermng
usermng.js:3 table
usermng.js:3 table


看来我的孩子状态“ app.usermng.table”从未进入。

谁能告诉我这是什么问题,非常感谢! :)

最佳答案

您需要添加一个“抽象”:true属性,例如:

.state('app.usermng', {
          url: '/usermng',
          templateUrl: 'tpl/app_usermng.html',
          abstract: true,
          resolve: {
              deps: ['uiLoad',
                function( uiLoad ){
                  return uiLoad.load( ['js/controllers/usermng/usermng.js','css/usermng.css'] );
              }]
          },
          onEnter: function(){
            console.log("enter usermng");
          }
      })
      .state('app.usermng.table',{
          url:'/table',
          templateUrl:'tpl/app_usermng_table.html',
          resolve:{
            deps:[
                'uiload',
                function(uiload){
                  return uiload.load(['js/controllers/usermng/usermngtable.js'])
                }
            ]
          },
          onEnter: function(){
            console.log("enter usermng table");
          }

      })

关于javascript - AngularJs Ui View 无法正确显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34915095/

10-11 00:29