2016-05-05 27 views
1

paramが動作しているルートを持っていましたが、いくつかの子ルートが追加されましたが、現在は更新されません。UIルータstateParamsが子ルートで更新されていません

イベントテンプレート

<a ui-sref="event.detail({id: event.id})" ng-repeat="event in events"> 
    Event {{event.id}} 
</a> 

UIルータ

.state('event', { 
    url: '/event', 
    views: { 
     'event': { 
      template: ..., // shown above 
      controller: 'Event' 
     } 
    } 
}) 
.state('event.detail', { 
    url: '/:id', 
    views: { 
     'event-detail': { 
      template: ..., 
      controller: 'EventDetail' // shows a single event 
     } 
    } 
}) 
// tabs to switch between the different details 
.state('event.detail.info', { 
    url: '/info', 
    views: { 
     'event-info': { 
      template: ... 
     } 
    } 
}) 
.state('event.detail.map', { 
    url: '/map', 
    views: { 
     'event-map': { 
      template: ... 
     } 
    } 
}) 
.state('event.detail.chat', { 
    url: '/chat', 
    views: { 
     'event-chat': { 
      template: ... 
     } 
    } 
}) 

コントローラ

function EventDetail($scope, $stateParams) { 
    $scope.getEventDetails = getEventDetails; 

    $scope.getEventDetails($stateParams.id); 

    function getEventDetails(id) { 
     console.log(id); // returns correct first time, then nothing. Used to work every time! 
     ... 
    } 
} 

を実行して

  • event/1、右のイベントの詳細を取得します
  • からEvent 1
  • URLが変更にクリックを一覧表示しevent/2からEvent 2
  • URLの変更をクリックして戻ったが、イベントの詳細が表示されます間違って起こっているの1
  • 情報、マップやチャットタブをクリックしevent/2からevent/1/infoへのURLの変更、event/1/mapevent/1/chat
+0

「イベント」状態とは何ですか?ショーは何ですか? –

+0

質問のテンプレートはイベント状態によってレンダリングされます。すべてのイベントのリストを表示します。 – barro32

+0

私はこれが起こっていること、あいまいなルートだと思います。 URL: 'event/detail/info'は' event/detail /:id'と 'event/detail/info'を通過します。したがって、あいまいです。 –

答えて

1

解決策はevent.detail州のユーザーcache: falseであり、その子の状態です。

関連する問題