简体   繁体   English

追加JQuery元素和Angular

[英]Appending JQuery element and Angular

Using angularJS, i am appending jQuery DOM element to an ng-repeat structure, and i want the element to be able to use a method from my angular controller (removeMember). 使用angularJS,我将jQuery DOM元素追加到ng-repeat结构中,并且希望该元素能够使用我的角度控制器(removeMember)中的方法。 Obviously at the moment that does not work. 显然此刻不起作用。 Here is my code 这是我的代码

$( "#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>");

Obviously everything renders ok, but when i click the href tag, nothng happens (the ng-click does not get called). 显然,一切正常,但是当我单击href标记时,nothng会发生(不会单击ng-click)。 I guess AngularJS does not work for the newly appended element. 我猜想AngularJS不适用于新添加的元素。 How can i make the link work (call the removeMember method from angularjs teamCtrl controller). 我如何使链接有效(从angularjs teamCtrl控制器调用removeMember方法)。

You shouldn't need to append the element with jquery, you can add it immediately after the ng-repeat element. 您无需在元素上附加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>

Also, make sure you're defining removeMember in the $scope variable of your controller. 另外,请确保在控制器的$ scope变量中定义removeMember。

Yes you got it correct angular js will not work for newly added dom element because new DOM element is added after compilation in context of angular 是的,您知道正确的Angular js不适用于新添加的dom元素,因为在angular上下文中编译后添加了新的DOM元素

to make it work you can recompile outer 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" ));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM