2015-12-14 91 views
0

我非常新的角度UI路由器不同的模式定義URL,我不知道如何可以定義相同的URL,但使用不同的參數組合,如:如何使用的角度UI路由器參數

$stateProvider 
    .state("no_param",{ 
     url: "/param", 
     /* if no param, goes here*/ 
     template: "<div ng-repeat='p in params'>{{p}}</div>", 
     controller: function($scope, $stateParams){ 
      $scope.params = $stateParams; 
     } 
    }) 
    .state("one_param",{ 
     url: "/param?param1", 
     /* if one param1, goes here*/ 
     template: "<div ng-repeat='p in params'>{{p}}</div>", 
     controller: function($scope, $stateParams){ 
      $scope.params = $stateParams; 
     } 
    }) 
    .state("another_one_param",{ 
     url: "/param?param2", 
     /* if one param2, goes here*/ 
     template: "<div ng-repeat='p in params'>{{p}}</div>", 
     controller: function($scope, $stateParams){ 
      $scope.params = $stateParams; 
     } 
    }) 
    .state("two_param",{ 
     url: "/param?param1&param2", 
     /* if param1 & param2, goes here*/ 
     template: "<div ng-repeat='p in params'>{{p}}</div>", 
     controller: function($scope, $stateParams){ 
      $scope.params = $stateParams; 
     } 
    }) 

我試過這個,但它不起作用。沒有顯示,只顯示一個空白頁。

然後我設置控制器中的斷點,事實證明,該控制器永遠不會運行,當我瀏覽到像/param?param2=test

一個URL誰能幫助?

回答

1

你所缺少的是views屬性,這裏是一個工作示例:

JSFiddle

angular.module('myApp', ['ui.state']) 
    .config(['$stateProvider', '$routeProvider', 
     function($stateProvider, $routeProvider) { 
      $stateProvider 
       .state('test', { 
        url: '/test', 
        views: { 
         'main': { 
          template: '<a ng-href="#/test/hello">param1</a> - <a ng-href="#/test/hello/world">param2</a>', 
         } 
        } 
       }) 
       .state('one_param', { 
        url: '/test/:param1', 
        views: { 
         'main': { 
          template: '<a ng-href="#/test">home</a> <div ng-repeat="p in params">{{p}}</div>', 
          controller: function($scope, $stateParams) { 
           $scope.params = $stateParams; 
          } 
         } 
        } 
       }) 
       .state('two_param', { 
        url: '/test/:param1/:param2', 
        views: { 
         'main': { 
          template: '<a ng-href="#/test">home</a> <div ng-repeat="p in params">{{p}}</div>', 
          controller: function($scope, $stateParams) { 
           $scope.params = $stateParams; 
          } 
         } 
        } 
       }); 
     } 
    ]); 
+0

謝謝,能不能幫指出(也許改寫這裏),這是鏈接的一部分(「爲在這裏陳述:「)我應該注意? – Kuan

+0

確切的Url參數部分,看看他們是很自我解釋的例子 –

+0

對不起,我沒有抓住那部分,我試圖找出哪個部分說「你必須使用另一個符號/語法」,爲什麼我的方式不起作用 – Kuan