2016-04-29 19 views
0

角度UI-ルータのUIビュー

index.htmlを

<div ui-view></div> 

test.htmlというのindex.htmlをのUIビュー

に、テストの内側にロードされます。 HTML

<div ui-view="content"></div> 

とは別のHTMLファイルをロードしようとしたが、それは

を働いていませんここでは3210

はとても基本的に、私は二つの問題を参照

<div ui-view> 
    <!-- test.html --> 
    <div ui-view="test"> 
    <!-- another.html --> 
    </div> 
</div> 
+0

'test.another'から' views/test.html'を削除してください。それはビューのためのものでなければなりません。したがって、最初のものは必須ではありません。また、 'another @ post'には何がありますか? AFAIKあなたはあなたの 'ui-view'sのどれにでもそのラベルを持っていません。 – cst1992

+0

すべてのコードを変更して、コメントをすべて削除しないでください。そうしないと誰も私が何を話しているのか分かりません。 – cst1992

答えて

0

で何を期待私のUI-ルータ

.state("index", { 
     url: "", 
     templateUrl: "views/index.html", 
     controller : 'MainCtrl', 
     controllerAs : 'main' 
     }) 
     .state("test", { 
     url: "/test", 
     templateUrl: "views/test.html", 
     controller : 'testCtrl', 
     controllerAs : 'test' 
     }) 
     .state("test.another", { 
     url : "another/", 
     views:{ 
      'content':{ 
      templateUrl :'views/another.html' 
      } 
     } 
     }) 

です:最初のtemplateUrlが必要とされていないことを

.state("test.another", { 
    templateUrl: "views/test.html", 
    views:{ 
     '[email protected]':{ 
     templateUrl :'views/another.html' 
     } 
    } 
    }) 

を。それはビューのみであり、ステートはありません。

また:

'[email protected]':{ 

これは、あなたが '別の' 'post.html' 内のビューをターゲットとしていることを意味します。あなたは 'another'という名前のビューも、 'post.html'というテンプレートも持っていません。

+0

URLは個別です。 rootの場合は '/'をテスト '/ test'に使い、別の人は'/another'を使います。 AngularはURLを使用して状態を内部的にマッピングします。だから最後に '/ test/another /#/'を得るでしょう。 – cst1992