8

ui-routerに切り替えました。1つのことを除いて、すべてが順調に進みました。私のページには、アプリケーションのコンテキストを変更する選択があります。とにかく、以前、このコンテキストが変更されたとき、私はこのコードを実行していました (特にsetメソッド):

'use strict';
angular.module('main').factory('lacContext', ['$route', function ($route) {
    return {
        set: function (id) {
            sessionStorage.setItem("lac-context", id);
            $route.reload();
        },
        get: function () {
            return sessionStorage.getItem("lac-context");
        }
    };
}])

$route.reload()

最も重要なことをしていた。ページをリロードしました。しかし、ui-router に切り替えた後、$route.reload は何もしません。また、ui-router API で対応するものを見つけられませんでした。この問題を解決するには?

4

5 に答える 5

8

できるよ$state.reload()

コントローラーを再インスタンス化しないことがあるというバグがあります。あなたはそれを回避することができます

$state.transitionTo($state.current, $stateParams, { reload: true, inherit: true, notify: true });
于 2014-07-16T16:54:18.217 に答える
6

コントローラーに $state を注入すると動作します。

しかし、コードスニペットのようにサービスに注入すると、もちろん $state は未定義でした。

それでも

$state.go('.')

うまくいきませんでした、私はこのようなことをしました:

    $stateProvider
      .state('home', {
          controller: function ($state) {
              $state.go('advisoryLeadOffering.packages');
          }
      })
      .state('advisoryLeadOffering.packages', {
          url: "/packages",
          templateUrl: "/AdvisoryLeadOffering/Packages",
          controller: 'AdvisoryLeadOfferingPackages'
      })

リロードする必要があるときは、次のようにします。

$state.transitionTo('home');

スコープのメソッド内。

于 2013-10-25T09:52:35.640 に答える
0

唯一のことは私のために働いた:

リダイレクト状態を作成します。

$stateProvider.state('redirect', {
    url: 'redirect/:to',
    controller: function($state, $stateParams, $scope) {
        $state.go($stateParams.to, null, {reload: true});
    }
});

この状態に移動します。

$state.go('redirect', {to: $state.current.name}, {reload: true});
于 2015-08-27T05:15:22.507 に答える