使用angularJS,我将jQuery DOM元素附加到ng-repeat结构,我希望元素能够使用我的角度控制器中的方法(removeMember)。显然目前不起作用。 这是我的代码
$( "#table tbody" ).append( "<tr class="+id_of_member+"><td>"+user_email+"</td><td><a href=\"#/\" ng-click=\"teamCtrl.removeMember("+id_of_member+")\">Remove The Member</a></td></tr>");
显然一切都可以正常,但是当我点击href标签时,会发生nothng(不会调用ng-click)。 我猜AngularJS不适用于新添加的元素。 如何使链接工作(从angularjs teamCtrl控制器调用removeMember方法)。
答案 0 :(得分:1)
你不需要用jquery追加元素,你可以在ng-repeat元素之后立即添加它。
<table>
<tr ng-repeat="member in memberList">
<td>
member item
</td>
</tr>
<tr>
<td ng-click="removeMember()">
email item
</td>
</tr>
</table>
另外,请确保在控制器的$ scope变量中定义removeMember。
答案 1 :(得分:0)
是的,你得到它正确的角度js不适用于新添加的dom元素,因为在角度
的上下文中编译后添加了新的DOM元素使其工作,您可以重新编译外部DOM
$( "#table tbody" ).append( "<tr class="+id_of_member+"><td>"+user_email+"</td><td><a href=\"#/\" ng-click=\"teamCtrl.removeMember("+id_of_member+")\">Remove The Member</a></td></tr>");
$compile($( "#table tbody" ));