2013-02-09 5 views
18

私はAngular JSの新機能として、外部テンプレートを読み込んで、それをターゲットのdivにいくつかのデータでコンパイルする方法を知りました。例えばURLからの角度ロードテンプレート

私はこのテンプレートを持っている:

<script type="text/ng-template"> 

    <img src="{{Thumb}}" /> 

<script> 

テンプレートが含まれていることになっているdiv

<div data-ng-controller=" ... "></div> 

テンプレートはフォルダ/templates/test.phpのどこかに位置しています。ディクショナリのようにテンプレートのロードを行う方法でビルドがありますか?{{Thumb}}(もちろん多くの他のもの)の代わりになるいくつかのデータに対してコンパイルしますか?

編集:$routesを使用して、ウェブサイトのルートにいるときにテンプレートを読み込むとどうなりますか?どのように達成することができますか?角度で

答えて

18

テンプレート(私が知っている、少なくとも2つの方法)を使用しての2つの方法があります:この構文で(同じファイルに)インラインテンプレートを使用して、最初

  • は:

    <script type="text/ng-template"> 
        <img ng-src="{{thumb}}"> 
    </script> 
    
  • もう一つは(あなたが欲しいものを)外部テンプレートです:

    <img ng-src="{{thumb}}"> 
    

ので、あなたが何をする必要があるか、あなたのテンプレートからスクリプト部分を削除してから、このような希望のdivに-含めるNG使用することです:二重引用符と単一引用符を持っている必要があります

<div ng-include="'templates/test.php'"></div>

を作業。 これが役立つことを願っています。

+0

これは機能しているようです。私がコントローラを定義し、 '$ scope.Thumb'を値に設定すると、' {{Thumb}} 'は値に置き換えられます。また、 '{{Thumb}} '画像ソースの' 404'を取得しましたが、避けることができますか? – Roland

+0

[plnkr](http://plnkr.co/edit/gist:3510140)に例を掲載していますので、よろしくお願いします。 –

+0

さて、彼らが持っている例を見てみましょう:http://docs.angularjs.org/api/ng.directive:ngView;私は今、同じことを設定していますが、ルートは私が持っている場所と一致しないため、おそらくリダイレ​​クトされます。私は '$ routeProvider.whenとしてそれを持っている( ''、{ \t \t \t templateUrl: 'テンプレート/ vcard.php' コントローラ\t \t \t: "VCardController" \t \t});' – Roland

2

のは、私がこのindex.htmlを持っているとしましょう:

<!doctype html> <html lang="en" ng-app="myApp"> 
     <body> 
      <script src="tpl/ng.menu.tpl" type="text/ng-template"></script> 
      <mainmenu></mainmenu>  
      <script src="lib/angular/angular.js"></script> 
      <script src="js/directives.js"></script> 
     </body> 
</html> 

をそして、私はテンプレートファイルを持っている "TPL/ng.menu.tpl" のみこれらの4行で:

<ul class="menu"> 
    <li><a href="#/view1">view1</a></li> 
    <li><a href="#/view2">view2</a></li> 
</ul> 

"js/directives.js"のディレクティブマッピング:

angular.module('myApp',['myApp.directives']); 
var myModule = angular.module('myApp.directives', []); 

myModule.directive('mainmenu', function() { 
    return { 
     restrict:'E', 
     replace:true, 
     templateUrl:'tpl/ng.menu.tpl' 
    } 
}); 
+0

Angularが '

  • 11. ます。http削除:私の角度のコードでURLから
  • 12. テンプレートURLからhtmlファイルへの角度1のルーティング
  • 13. 角度2のURLから値を取得する方法
  • 14. 角度jsのURLから#記号を削除
  • 15. 角度2同じURLレベル
  • 16. 角度変更ビューURLパラメータ
  • 17. 角度入力タイプ= "select url"
  • 18. 角度2 [routerLink]ナビゲートが、URL
  • 19. 角度サービスから
  • 20. 角度UIルータでURL文字列から状態を取得
  • 21. URLからパラメータを取得する方法(ルーティング)角度2?
  • 22. 角度コントローラからのマングースアクセス
  • 23. インデックスページからの角度チェック
  • 24. 角度2の動的スタイルのURL?
  • 25. 角度uiルータのオプションのURLパラメータ
  • 26. インターセプトURLは春のセキュリティ角度
  • 27. 角度UI-ルータの変更URLがリロード
  • 28. 角度2の定義ベースURL
  • 29. 角度ui-router $ stateProvider.stateのurl属性
  • 30. URLの角度に基づいたカスタムビュー