21804


プロフィールページを0で埋められた7桁のプロフィールIDのついたURLで表そうと、UI
Routerを使っているのですがURLを正しく作れなくて困っています。

HTMLは下のようにaタグのui-sref属性にパラメーターを指定しました。  
ctrlはaタグを囲っているタグでCtrl as
ctrlの様に指定したものです。ctrl.profilenameは'ユーザー1'など適当な文字列が入っています。  
ctrl.profileIdにはこの場合文字列'0000001'が入っています。

[code]

    <a ui-sref="profile({profileId:{{ctrl.profileId}}})">{{ctrl.profilename}}</a>
    
[/code]

$stateProviderはstateとurlをui-srefに指定されたパラメーターからURLを作ってくれるように設定しました。  
Viewはプロフィールの表示先の名前でstateはViewが属するstateです。

[code]

    $stateProvider.state('profile', {
      //hrefを作る際に？文字列だった'0000001'が1のように変換されてしまいます。
      url: 'profile/:profileId',//現在のアドレスは/とします。なので/profile/0000001が求めているアドレスです。
      views: {
        'View@state': {
          templateUrl: '/templates/profile.html',
          controller: 'profileCtrl as profile'
        }
      }
    });
    
[/code]

しかし表示されたビューのコントローラーprofileCtrlでprofileIdを見ようとすると'0000001'を取りたいのに1になってしまいます。

[code]

    console.log($stateParams.profileId); //1と表示される
    
[/code]

HTMLも下のように表示されてしまいます。

[code]

    <a ui-sref="profile({profileId:0000001})" href="/profile/1">ユーザー1</a>
    
[/code]

どうすればhrefのURLを'0000001'の様に0で埋めて表示できますでしょうか？  
あとで加工してしまうという方法もあるのですが、できればそのままでui-router側の設定やパラメーターに指定するときなどで何か出来る対策は無いでしょうか？


CC BY-SA 3.0
2016-02-01T12:07:19.543
21578
2016-02-07T05:30:34.573
14222
question
javascript angularjs ui-router
AngularUI Rounterで$stateParamsに0埋めの文字列を渡したい


`<a ui-sref="profile({profileId:ctrl.profileId})">{{ctrl.profilename}}</a>`

こちらで如何でしょうか？  
AngularJS,ui-routerのバージョンにもよるのかもしれませんが、似た環境で試してみたところ問題は起こりませんでした。


CC BY-SA 3.0
2016-02-07T05:30:34.573
21804
2016-02-07T05:30:34.573
661
21578
answer