2013-04-20 4 views
79

インラインビューテンプレートを読み込みたいとしました。インラインテンプレートを角で使用する

テンプレートをtext/ng-templateのスクリプトタグにラップし、IDをtemp1.htmlに設定しました。そして、ここでそれはそれはその名前のファイルを探していることを意味私のコンソールウィンドウで私をGET http://localhost:41685/temp1.html 404 (Not Found)伝え

learningApp.config(function ($routeProvider) { 
    $routeProvider 
     .when("/first",{ controller: "SimpleController", templateUrl: "temp1.html"}) 
     .when("/second", {controller: "SimpleController", templateUrl: "temp2.html"}) 
     .otherwise({redirectTo : "/first"}); 
}); 

ように私のモジュールの設定が見えるものです。

質問:インラインテンプレートを使用するようにルートを設定するにはどうすればよいですか?

アップデート:ここではDOMが

<!DOCTYPE html> 
<html> 
<head> 
    <script src="/Scripts/angular.js"></script> 
    <link href="/Content/bootstrap.css" rel="stylesheet"/> 
</head> 
<body> 
    <div class="container">  
    <h2>Getting Started with Angular</h2> 
    <div class="row"> 
     <div class="panel" ng-app="LearningApp"> 
      <div ng-view></div> 
     </div> 
    </div> 

<script type="text/ng-template" id="temp1.html"> 
    <div class="view"> 
     <h2>First View</h2> 
     <p> 
      Search:<input type="text" ng-model="filterText" /> 
     </p> 
     <ul class="nav nav-pills"> 
      <li ng-repeat="cust in customers | orderBy:'name' | filter: filterText "><a href="#">{{cust.name}} - {{cust.school}}</a></li> 
     </ul> 
    </div> 
</script> 

<script type="text/ng-template" id="temp2.html"> 
    <div class="view"> 
     <h2>Second View</h2> 
     <p> 
      Search:<input type="text" ng-model="filterText" /> 
     </p> 
     <ul class="nav nav-pills"> 
      <li ng-repeat="cust in customers | orderBy:'name' | filter: filterText "><a href= "#">{{cust.name}} - {{cust.school}}</a></li> 
     </ul> 
    </div> 
</script> 
    </div> 
    <script src="/Scripts/jquery-1.9.1.js"></script> 
    <script src="/Scripts/bootstrap.js"></script> 
    <script src="/Scripts/app/LearningApp.js"></script> 
</body> 
</html> 

答えて

111

ODY、あなたは正しい軌道に乗っていた、唯一の問題は、タグがng-appディレクティブが使用されているDOM要素のあることでした。 <body ng-app="LearningApp">要素に移動すると、インラインテンプレートが機能するはずです。

Is there a way to make AngularJS load partials in the beginning and not at when needed?

+0

それは働いた。ありがとうalot – Ody

+2

ほとんどのチュートリアルでng-appディレクティブをhtml要素に追加する方が好きな理由がわかりました。それは、そのアプリ/モジュールに関連しているものはNGアプリの範囲内でなければなりませんので、したがってhtmlタグでそれを入れている。これは、ドキュメントが言及しているものです。この – Ody

+2

ような将来の問題を回避することができます。なぜそれらの404が登場したのか疑問に思った。 –

31

どのように見えるかを自分のサーバーレンダリングのテンプレートの名前は動作するはず設定するスクリプト要素のid属性を使用してみてください。

<script type="text/ng-template" id="temp1.html"> 
    ... some template stuff 
</script> 
+0

私はそうしました。うまくいきませんでした。私は私のメインページが実際に典型的なhtmlファイルではないことを疑う。 http:// server/controller/ – Ody

+0

のようにテンプレートファイルを使用しない理由は、私のopionionでより明確です。 – tschiela

+0

あなたは正しいです。その方法はうまく動作し、より良い結果を出します。しかし、バックボーンのような古いフレームワークで書かれたマイグレーションしたいアプリケーションがあり、インラインテンプレートに大きく依存しています。だから私はそれがどのように角度をもって行われたのかを知りたかったのです。 – Ody

関連する問題