2016-09-17 10 views
0

URLパラメータを変更すると何らかの理由でコントローラもビューも再ロードされません。パラメータ変更時のリロードビュー

.state('events', { 
    url: "/events", 
    controller: 'EventsCtrl', 
    templateUrl: "Content/Directives/Navigator/navigator.html", 
}) 
.state('events.event', { 
    url: "/{id:int}", 
    reload: true, 
    template: '{{currentDate}}' 
}); 

私のコントローラ:私は/イベント/ 2を開き、CURRENTDATEが更新を期待したが、それは

私の状態の設定を:(しない、その後/イベント/ 1を開かれたのは何:

function NavigatorCtrl($scope) { 
    $scope.currentDate = new Date(); 
} 

navigator.html:

<div class="row"> 
    <h3>Navigator</h3> 
    <ui-view/> 
</div> 

なぜ更新されないのですか? URLパラメータの変更ごとに状態を更新するにはどうすればよいですか?
「reload:true」と書いてありますが、state.go()を呼び出すときに通常オプションで使用されるため、おそらく効果がありません。
ps:これを "$ scope.currentDate = new Date();"に変換できます機能に説明しても、行動が正常であると不思議に思うかもしれません...

+0

私はあなたがURL: "/ events/{id:int}"を使用すべきだと思います。 – Gerfried

+0

@Gerfried州名のドットは既に 'events'の子になります – charlietfl

+0

' events'の 'controller' '状態。 'NavigatorCtrl'がどこにclledされているのかわからない – charlietfl

答えて

0

ロケーションの変更を聞いて、コントローラが起動するとコントローラをリロードできます。

$scope.$on('$routeChangeSuccess', function() { 
     $state.transitionTo($state.current, $stateParams, { reload: true, inherit: true, notify: true }); 
    }); 

動作しますが、私はプランナーでテストしませんでした。あなたが私のアプリのプランナーを私に提供できるなら、私はあなたの例を完成させることができます。希望、それはあなたを助ける!

関連する問題