2016-09-25 61 views
0

我正在开展一个个人项目,我正在尝试在单一状态下使用ui视图嵌入另一个视图。如何在一个状态下嵌套在另一个ui-view中的ui-view?

所以这是事情,网址有2个参数,第二个参数是可选的,所以如果用户添加第二个参数,我会在我加载的页面内显示额外的信息。

下面是代码的一部分:

app.js

.state('students', { 
     url: '/students/:id/grade/:num', 
     templateUrl: function ($stateParams) { 
      return $stateParams.students + '.html'; 
     }, 
     controllerProvider: function($stateParams) { 
      var Ctrlname = $stateParams.students + 'Ctrl'; 
      return Ctrlname; 
     } 

的index.html

<ul> 
    <li><a ui-sref="students({id: '1', grade: ''})">Student 1</a></li> 
    <li><a ui-sref="students({id: '2', grade: ''})">Student 2</a></li> 
</ul> 
<div ui-view></div> 

1.HTML

<div> 
    <ul> 
     <li><a ui-sref="">Math</a></li> 
     <li><a ui-sref="">English</a></li> 
     <li><a ui-sref="">History</a></li> 
    </ul> 

所以我怀疑在这里是,我将如何实现这一点,使用单一的状态。我是否必须在app.js上添加更多信息,以及我在1.html文件的ui-sref中添加了哪些内容?

回答

0

块:

templateUrl: function ($stateParams) { 
     return $stateParams.students + '.html'; 
    }, 

建议你每生几个模板。理想情况下,您应该有一个包含动态内容的模板。

你可以用简单的ng-ifng-show来实现你所需要的。

所以你的控制器可能有类似:

if ($stateParams.num) { $scope.gradeNum = $stateParams.num ... }

而且在模板:

<div ng-show="">.....Grade Additional Info</div>

+0

是的,我知道这将是把我需要做到这一点的最好办法另一个ui视图。 – SujaM