2013-04-30 14 views
10

私はこのようなコントローラいる:私はNGクリックを使用してupload_variant_image関数を呼び出すしようとすると、それだけで静的なDOM(ときDOM負荷)に結合するとき、私はこのようなリンクを持っているng-clickは動的DOM AngelsJSで動作しませんか?

@VariantModalCtrl = ($scope) -> 
    $scope.upload_variant_image = -> 
    alert("test") 

の作品:

この要素は、DOMが読み込まれた後に動的に追加されるため、ng-clickは機能しません。 AngularJS + JQuery : How to get dynamic content working in angularjs

しかし、私はRailsの中にこのようなDOMを更新するときにそれは動作しません:

更新 ちょうど$関数をコンパイル使用して私の答えの一部を発見した

$(".modal-body").html($compile("<%= j render("/variants/form", :variant => @variant) %>")(scope)); 
+0

あなたはフィドルデモまたはプランナーデモを共有してください –

答えて

15

私は考えAngular-externalの方法でDOMを操作している場合、Angular philosophyを完全に受け入れていない可能性があることを警告します。 AngularJSを使ってリンクを動的に追加することは他のものと同じくらい簡単で、外部ライブラリをうまく利用するよりもはるかに簡単で慣用的です。あなたがする必要があるのは、適切にスコープデータアップワイヤである

<ul> 
    <li ng-repeat="item in items"> 
    <a ng-click="upload_variant_image()">{{item.name}}</a> 
    </li> 
</ul> 

、これは常に「だけで動作します。」になります。ここでは、あなたの質問に基づいて、簡単な例であります

DOMを操作している場合、$compile serviceを使用してAngularJSバインディングを発生させることができます(たとえば、ng-clickを望むように)。しかし、上記のより良いオプションを検討してください。 :)

関連する問題