2

我正在使用 AngularJS 的UI-Router 框架来呈现嵌套的部分。我在渲染父部分及其子部分时遇到问题。这是我的代码:

window.app.config(['$stateProvider', '$urlRouterProvider', 
  function($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise('/');
    $stateProvider
    .state('class', {
        url: '/classes/:classId',
        templateUrl: '/views/class.html',
        controller: 'ClassCtrl',
    })
      .state('class.questionList', {
        url: '',
        templateUrl: '/views/questionList.html',
      })
  }]);

在我的子状态声明中,我将 url 设置为一个空字符串,以便它与父状态同时呈现。但是,这不起作用,只有父视图在渲染。

4

2 回答 2

2

在父状态中添加“abstract:true”属性,告知UI-Router该状态只能通过激活子状态来激活。这将使 URL /classes/:classId 激活这两种状态。

于 2013-09-25T03:45:57.547 回答
1

隐含子状态意味着您希望从现有状态导航到该状态,这应该更新与该状态匹配的 url。

从您的路线来看,您似乎想在 a ui-viewof 中显示某些内容class.html,但不希望状态更改为子项。更好地使用ng-include可以很好地达到目的

在你class.html中,你添加了ui-view使用 ng-include

<ng-include src="'/views/questionList.html'"></ng-include>
于 2013-09-24T08:49:18.460 回答