2017-12-13 5 views
0
私はカスタムメニューのいくつかの種類をやってる

、我々はAngularJSのv1.6.7、およびui.routerを使用している文字列に$ state.paramsを交換ui.router、私の状態は次のようになります。だから、AngularJSは

.state('programs', 
    { 
     url: '/programs/:id', 
     component: 'programs', 
     //below is our custom menu object 
     menu: { 
      name: 'Program id :id' 
     } 
    }) 

私はui-sref="programs({id: '123'})"によってHTMLでこの状態に行きます。その後、コードのどこかでlet currentState = $state.currentを使用して現在の状態を取得した後、結果としてのような名前を表示しようとしました。Program id :idが表示されますが、この文字列の 'id'パラメータをどのように置き換えるのですか?これを行うには、公開されたui.routerメソッドがありますか? ui.routerは何らかの形でURLにこれらのパラメータを設定しているので、URLではidの代わりに123が表示されます。私の$state.paramsはidフィールドを保持します:{#:null, id:123}

答えて

1

次に、あなたのコントローラと範囲で利用できるようになる、resolveメソッドを使用して、URLパラメータを渡すことができます。

{ 
     url: '/programs/:id', 
     component: 'programs', 
     menuData: function($stateParams){ 
      return { 
      id: $stateParams.id 
      } 
     }, 
     controller: function($scope, menuData){ 
     // Now you can use it, either in a template, etc. 
     $scope.id = menuData.id 
     } 
    }) 

チェックより詳細な手順

をためて、この link