AngularJs ui-router任务完成

时间:2016-07-31 13:33:43

标签: javascript angularjs angular-ui-router

嘿伙计们,我有这个任务,需要一些帮助,因为这很有挑战性,你能不能给我一些提示

  

1)使用ui-route创建至少3个共享单个状态的页面以加载它们。要实现此目的,请根据这些参数通过动态和加载视图/控制器获取状态url参数。   创建一种方法,可以在路由更改时按需加载每个页面的控制器和模板。使状态url选项具有2个参数,第二个参数可选(这可以通过在url参数上使用regexp来完成),以便其中一个页面可以基于该参数在另一个ui视图中加载其他信息。

$urlRouterProvider.otherwise('/');
        $stateProvider
          .state('student',{
            url: "/student/:id",
            templateUrl: 'partials/1.html',
            controller: function ($stateParams) {
                alert(1)
            }})
            .state('studentTwo',{
            url: "/student/:id",
            templateUrl: 'partials/2.html',
            controller: function ($stateParams) {
                alert(2)
            }})
            .state('studentThree',{
            url: "/student/:id",
            templateUrl: 'partials/3.html',
            controller: function ($stateParams) {
                alert(3)
            }})

我已经在这里,我知道如果在前端执行ng-repeat并更改url参数,如何共享单个状态,但是如何基于这些动态加载视图和控制器paramteres?

谢谢!

2 个答案:

答案 0 :(得分:1)

您不能对不同的州使用相同的路线。我将只停止一条路线。

$urlRouterProvider.otherwise('/');
    $stateProvider
      .state('student',{
        url: "/student/:id",
        templateUrl: 'main.html',
        controller: function ($stateParams) {
            alert(1)
        }})

然后我将创建另一个名为partial的文件夹,并将所有视图放在那里1.html 2 n 3。

我们可以有条件

<ng-include src="'1.html'"></ng-include>//condition1
<ng-include src="'2.html'"></ng-include>//condition2
<ng-include src="'3.html'"></ng-include>//condition3

答案 1 :(得分:1)

感谢您的支持,在您的帮助和指导下,我设法做到了这样:

$urlRouterProvider.otherwise('/');
        $stateProvider
          .state('student',{
            url: "/student/:id",
            templateUrl: function ($stateParams){
                return 'partials/' + $stateParams.id + '.html';
                },
            controllerProvider: function($stateParams) {
              var ctrlName = $stateParams.type + "Controller";
              return ctrlName;
          }})
        }

我做了很多恐慌:D:D