use*_*793 10 javascript dom angularjs
我有一个像这样的控制器:
@VariantModalCtrl = ($scope) ->
$scope.upload_variant_image = ->
alert("test")
Run Code Online (Sandbox Code Playgroud)
当我尝试使用ng-click调用upload_variant_image函数时,它仅在绑定到静态DOM时有效(当DOM加载时),我有这样的链接:
<%= link_to "test", "" , "ng-click" => "upload_variant_image()" %>
Run Code Online (Sandbox Code Playgroud)
但是在加载DOM之后动态添加此元素,因此ng-click不起作用.
更新 刚刚使用$ compile函数找到了我的答案的一部分: AngularJS + JQuery:如何在angularjs中获取动态内容
但是当我在Rails中更新这样的DOM时,它不起作用:
$(".modal-body").html($compile("<%= j render("/variants/form", :variant => @variant) %>")(scope));
Run Code Online (Sandbox Code Playgroud)
Eze*_*tor 15
如果你通过Angular-external手段操纵DOM,我会警告你,你可能不会完全接受Angular哲学.使用AngularJS动态添加链接就像其他任何内容一样简单,并且可能比让外部库更好地使用更容易和更惯用.这是一个基于您的问题的简单示例:
<ul>
<li ng-repeat="item in items">
<a ng-click="upload_variant_image()">{{item.name}}</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
您需要做的就是适当地连接范围数据,这将始终"正常工作".
也就是说,如果你正在操作DOM,你可以使用$ compile服务使AngularJS绑定发生(例如,按照你想要的方式进行ng-click).不过,请考虑以上更好的选择.:)
| 归档时间: |
|
| 查看次数: |
11485 次 |
| 最近记录: |