2016-10-18 103 views
0

我知道在Angularjs中有很多方法可以做到這一點。例如,通過使用$位置等使用AngularJs從URL獲取價值

但我無法找到如何獲取值,如果URL是這樣的:

http://localhost:8000/test/1

如何從URL中獲取價值呢?

對於路由我使用stateProvider:

export default angular.module("examino.userTestSession", ["ui.router"]) 
    .config(function($stateProvider) { 
     $stateProvider 
      .state("testing", { 
       url: "/test", 
       controller: "UserTestSessionController", 
       templateUrl: "./app/components/userTestSession/user-test-session.html", 
       controllerAs: "vm" 
      }) 
      .state("sessionExpired", { 
       url: "/sessionExpired", 
       controller: "UserTestSessionController", 
       templateUrl: "./app/components/userTestSession/user-test-session-expired.html", 
       controllerAs: "vm" 
      }); 
    }) 

我可以定義「測試」狀態時,可能得到價值?

回答

2

只需使用路線參數與:param

路線

export default angular.module("examino.userTestSession", ["ui.router"]) 
    .config(function($stateProvider) { 
     $stateProvider 
      .state("testing", { 
       url: "/test/:id", //Add the parameter here 
       controller: "UserTestSessionController", 
       templateUrl: "./app/components/userTestSession/user-test-session.html", 
       controllerAs: "vm" 
      }) 
      .state("sessionExpired", { 
       url: "/sessionExpired", 
       controller: "UserTestSessionController", 
       templateUrl: "./app/components/userTestSession/user-test-session-expired.html", 
       controllerAs: "vm" 
      }); 
    }) 

控制器

var myId = $stateParams.id 

/test/:id將匹配/test/bob/test/1235/test/但不/test/test/bob/other

/test/{id}是一樣的前一個

/test/{id:int}意味着該參數是解釋爲一個整數

/test/{id:[0-9]{1,8}}指ID必須尊重提供的正則表達式