6

新しい状態ベースのui-routerを使用するAngularJSアプリケーションがあります。私のアプリケーションには、トップレベルのビューと入れ子のビューの3つのビューがあります。角度ルータにネストされた状態の戻るボタン

次のような構造は基本的には次のとおりです。

/ => Top-level view 
/foo => Abstract view, loads a view that contains a ui-view placeholder 
/foo/bar => View for the placeholder 
/foo/baz => View for the placeholder 

ルータは、次のように設定されています

app.config(['$urlRouterProvider', '$stateProvider', function ($urlRouterProvider, $stateProvider) { 
    'use strict'; 

    $urlRouterProvider 
    .when('/bar', '/foo/bar') 
    .otherwise('/'); 

    $stateProvider 
    .state('home', { 
     url: '/', 
     views: { 
     '': { 
      controller: 'homeController', 
      templateUrl: '/home/homeLayout.html', 
     }, 
     '[email protected]': { 
      templateUrl: '/home/firstHomeView.html' 
     }, 
     '[email protected]': { 
      templateUrl: '/homme/secondHomeView.html' 
     } 
     } 
    }) 
    .state('foo', { 
     abstract: true, 
     templateUrl: '/foo/fooLayout.html', 
     controller: 'fooController' 
    }) 
    .state('foo.bar', { 
     url: '/foo/bar', 
     templateUrl: '/foo/barView.html', 
     controller: 'barController' 
    }) 
    .state('foo.baz', { 
     url: '/foo/baz', 
     templateUrl: '/foo/bazView.html', 
     controller: 'bazController' 
    }); 

問題は予想通り、基本的にはすべてがあなたの周りをクリックするか、手動で入力したときに動作すること、ですブラウザの[戻る]/[進む]ボタンを使用しているときは機能しません。

たとえば、/fooに行くと、あなたは/foo/barになります。 /foo/bazに行くリンクをクリックすると、すべての問題は解決します。その後、/にリンクするリンクをクリックしてください。

戻るボタンを押すと、/foo/baz(これは正しい)に戻りますが、サブビュー/foo/bazView.htmlではなく、/foo/fooLayout.htmlの表示のみがレンダリングされます。奇妙なことは、戻るボタンをもう一度押すと、/foo/barに移動し、サブビューも含めて正しくレンダリングされるようになりました。同時に、抽象ビューを入力すると、少なくとも、戻るボタンを使用すると入れ子にされたビューが認識されないように見えます。

$locationProvider.html5Modeは有効になっていませんが、有効にしても効果はありません。

私はAngularJS 1.0.5とui-router 0.0.1-2013-03-20を使用しています。

この問題を引き起こす原因は何か、どのように解決できるのでしょうか?

答えて

4

ビューでfooLayout.htmlui-viewの代わりにng-viewを使用していました。私がそれを変更すると、すべてがうまくいっていました:-)

+1

あなたは翌日に解決策を見つけました。:) – Vignesh

関連する問題