在jquery中的原始html中使用angular指令

时间:2016-07-21 09:28:24

标签: jquery angularjs angularjs-directive

我在收到html回复后创建了ajax,例如:

var html = '';
html = '<div ng-click="deleteRecord($event)">delete</delete>';
$('.main).append(html);

但是ng-click指令在直接在html文档中添加时工作正常无效。我对角度与DOM的结合方式不太了解。

因此,当我通过html添加jquery时,我需要一些支持才能理解我是否能够完成这项工作?

感谢。

3 个答案:

答案 0 :(得分:0)

您可以使用默认Angular库中包含的bindHtml指令,而不是将HTML附加到元素中。

<div data-ng-bind-html="someHtml"></div>

只需将HTML字符串应用于控制器的someHtml属性即可,它应该可以正常工作。确保在控制器中包含ngSanitize(或'$ sanitize'),因为这样可以确保不会插入任何有害的HTML。

答案 1 :(得分:0)

插入HTML后,您可以致电$apply()。这迫使角度重新消化绑定。

var html = '';
html = '<div ng-click="deleteRecord($event)">delete</delete>';
$('.main).append(html);
$scope.$apply();

答案 2 :(得分:0)

试试这个:

$('.main').append($compile(html)($scope));
$scope.$apply(); 

希望它有所帮助。

PD:我在使用Angular时试图避免使用jQuery。