2015-02-28 3 views
0

Использование angularJS, я добавляю элемент JQuery DOM в структуру ng-repeat, и я хочу, чтобы элемент мог использовать метод из моего углового контроллера (removeMember). Очевидно, что в данный момент это не работает. Вот мой кодДобавление элемента JQuery и Angular

$("#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 происходит (НГ-клик не дозвонились). Я думаю, что AngularJS не работает для нового добавленного элемента. Как я могу заставить ссылку работать (вызовите метод removeMember из контроллера angularjs teamCtrl).

ответ

0

Да вы получили это правильно угловатые JS не будет работать для добавляемого йота элемента, потому что новый 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")); 
+0

он говорит ReferenceError: $ compile не определен, и у меня есть компиляция $, введенная в моем контроллере. – AleksandarT

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> 

Кроме того, убедитесь, что вы определяете removeMember в переменной $ scope вашего контроллера.

Смежные вопросы