Использование угловой директивы в необработанном HTML в JQuery

0

Я создаю html после получения ответа ajax, например:

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

Но директива ng-click не работает там, где она отлично работает при непосредственном добавлении в html-документе. Я не очень понимаю, как угловые привязки к DOM.

Так что мне нужна поддержка для понимания, могу ли я сделать эту работу, когда добавляю html через jquery?

Благодарю.

Теги:
angularjs-directive

3 ответа

0

Вместо добавления HTML к вашему элементу вы можете использовать директиву bindHtml, включенную в Угловые библиотеки по умолчанию.

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

Просто примените строку HTML к свойству someHtml вашего контроллера, и он должен работать нормально. Обязательно включите ngSanitize (или "$ sanitize") в свой контроллер, так как это гарантирует, что не может быть вставлен повреждающий HTML.

0

Попробуй это:

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

Надеюсь, поможет.

PD: Я пытаюсь избежать jQuery при использовании Angular.

0

Вы можете вызвать $apply() после вставки вашего HTML. Это заставляет углы повторно переваривать привязки.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню