如何使用嵌套在具有单个状态的另一个ui-view中的ui-view?

时间:2016-09-25 23:55:39

标签: javascript angularjs uiview

我正在开展一个个人项目,我正在尝试在处理单个州时将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中?

1 个答案:

答案 0 :(得分: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>