1. ホーム
  2. javascript

AngularJSで$state.goにパラメータを指定してジャンプする

2022-02-18 19:54:39

1枚目

パラメータは、アクセスアドレスの? userId は自動的に ?userId=0010001 に変更されます。

$stateProvider.state('page.home', {
   url:"/home?:userId",
   templateUrl: "/html/homeView",
   controller: "homeController",
   title:"Home",
   params:{


userId:null}
})

<未定義


$stateProvider.state('page.home', {
   url:"/user/:userId/detail",
   templateUrl: "/html/userDetailView",
   controller: "userDetailController",
   title:"Member Details",
   params:{


userId:null}
})

2枚目

パラメータはURLの中に直接表示され、自動的に http://localhost/user/0010001/detail に変換されます。

$stateProvider.state('page.home', {
   url:"/user/detail",
   templateUrl: "/html/userDetailView",
   controller: "userDetailController",
   title:"Member Details",
   params:{


userId:null}
})





<未定義


$state.go("page.home",{userId:"0010001"});

3枚目

アドレスバーの隠しパスにパラメータが表示されない

$stateParams.userId














<未定義


userId:null}
})


上記の3つのパラメータの渡し方は、いずれも以下のようなジャンプを使用します。

$state.go("page.home",{userId:"0010001"});

もし、それが  ui-sref  は ui-sref="page.home({userId:'0010001'})" と書くか、ng-repeatループの中に記述してください。

<a ng-repeat="item in userList" ui-sref="page.home({userId:item.userId})" ng-bind="item.name"></ a>.となります。


を得ると、すべて同じになります。

$stateParams.userId