2017-02-06 3 views
0

テンプレートファイルとコントローラを使ってHTMLをクリックした後、動的コンテンツを追加する方法を理解できません。テンプレートとコントローラを使った角型動的要素

私のようなものにしたい:

element.click(function(){ 
    element2.html(templateUrl, controller); 
}); 

アンギュラ1.5.8

+0

私はあなたが読んでお勧めの[この](のhttp:// stackoverflowの.com/questions/14994391/thinking-in-angularjs-if-i-have-a-jquery-background)を使用してください。問題については、[ngRoute](https://docs.angularjs.org/api/ngRoute)モジュールを使用するのが最適です。この[example](https://docs.angularjs.org/api/)を参照してください。 ngRoute/service/$ルート#例)。 – SinDeus

答えて

0

あなたは、コントローラとテンプレートとのディレクティブを作成し、それをコンパイルし、DOMに追加するよりも可能性があります。

1

私はあなたがやりたがっていることは、動的にHTMLをレンダリングすることであると感じています。これには二つの解決方法があります。

  1. 角度ルーティングを:あなたはあなたのアプリケーション内の別のページに移動したい場合、これは、主に使用されていますが、アプリケーションはSPA(シングルページアプリケーション)になりたいですページを再読み込みすることなく、ngRouteモジュールを使用することができます。これのコンテンツはどこでも入手可能です。あなたはそれらを見ることができます。
  2. カスタムディレクティブ:あなたが欲しい方イベントのHTMLレンダリングうディレクティブ書いてみることができます。

    .directive("customTemplateLoad", function($http, $templateCache, $compile) { 
    return { 
        restrict: 'A', 
        link: function(scope, element, attr, controller){ 
        var template; 
        // Some logic to get template, perhaps pass it in the directive itself 
        var templatePath = '/templates/'+template; 
        $http.get(templatePath, { cache: $templateCache }).success(function(response) { 
         var contents = element.html(response).contents(); 
         $compile(contents)(scope); 
        }); 
        } 
    };}) 
    
+0

私は既に角度ルーティング付きのSPAアプリケーションを持っています。私はモデルアラートのいくつかのビューを持っており、すべてのアラートの後にアラート作成フォームを追加したい。 –

+0

おそらくdocument.writeを実行するような何かが役に立ちます。これが役に立つかもしれません(http://stackoverflow.com/questions/19637312/is-there-an-angular-way-of-printing-a-div-from-a-html-page)。これが何をするかは、ドキュメントhtmlが用意されていれば、そのhtmlを挿入できます。これは役に立ちますか? –

関連する問題