附加JQuery元素和Angular

时间:2015-02-28 19:10:13

标签: javascript jquery angularjs

使用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方法)。

2 个答案:

答案 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" ));