2016-04-12 8 views
1

私はアプリケーションを構築しています。まず、JSONをサーバーから使用してHTMLテンプレート用にhandlebars.jsを導入しました。Ng-Click Handlebars.JSテンプレート内でクリックしない

しかし私はAngular JSもテンプレート機能を持っていると理解しているので、いくつかのことを概念的に見逃していると思いますか?これらの技術を一緒に使用しないでください。

とにかく私がhandlebars.jsで始めたので、私はハンドルバーにテンプレートを持っていて、ng-clickはAngularがそれを知らず、コンパイルされていないため起動できませんAngularで

var source = $("#newPostTemplate").html(); 
var template = Handlebars.compile(source); 
$("#subBoxone").append(template(theData)); 

または私はちょうど角テンプレートを実行する必要があります。

は、私のようなものを実行したら、ハンドルバーのテンプレートでこのng-clickの周りの角を伝えるためにそこに方法は何ですか?しかし、私はhandlebars.jsの実装を続けて、ちょうどそのテンプレートワークからng-clickを持っているといいですね。それ、どうやったら出来るの?

これはng-clickとテンプレートの一部です:

<button class="btn btn-primary btn-lg thoughtButton" ng-click="pollData()">Submit Additional Comment!</button> 

私はDOM階層内の別の要素が高いアップに-ngのをクリックして添付し、それが正しいものであるかどうかを把握するために$eventを使用することができます私は思うが、私はこれを利用してng-clickを直接生成したいと思う。

ありがとう、私は必要に応じてさらに情報を提供しています!

答えて

0

テンプレート部分にハンドルバーを残しておくことができますが、ハンドルバーテンプレートを実行してコンパイルする指示文を追加する必要があります。あなたはtemplate/compile機能付きディレクティブを持っているか、手動$compileとそれにlink機能を自分でコンパイルすることができ、HTMLのブロックをコンパイルする

。私ので、あなたは少し実験する必要があるかもしれませんが、例のようなものだろう前に、ハンドルバーを使用したことがありません:あなたはあなたのハンドルバーのテンプレートを持ってどこ

angular.module('handlebarsTemplate', []) 
    .directive('handlebarsTemplate', function() { 
    return { 
     ... 
     template: function(tElem, tAttrs) { 
     var html = tElem.html(); 
     var template = Handlebars.compile(html); 
     return template; 
     } 
     ... 
    }; 
    }); 

だから、あなたはこのディレクティブでラップする必要があり、それコンパイルされたHandlebarsテンプレートでAngularでコンパイルする必要があります。

関連する問題