<div data-ng-bind-html="message | myFilter"></div> <!-- it does not work -->
<img data-my-directive src="xxx.jpg" alt="some captions"/> <!-- it works -->
angular.module('core').filter('myFilter', ['jQuery',
function ($) {
return function (message) {
var $img = $('<img data-my-directive/>'):
$img.attr({src : 'xxx.jpg', alt : message});
return $('<div/>').append($img).html();
}
}
]);
angular.module('core').directive('myDirective', [
function() {
return {
restrict : 'A',
link : function (scope, $element, attrs) {
$element.someJQueryPlugin();
}
}
}
]);
Aus dem obigen Beispiel zurück Anwendung, kann ich nicht die ersten <img/>
Arbeiten mit myDirective
, wenn es aus dem Filter angebracht ist, während die zweiten <img/>
funktioniert, da es normalerweise ursprünglich aus der kam Vorlagendatei.eine Richtlinie aus einem Ergebnis von einem Filter
Jede Workaround um die zweite <img/>
funktioniert auch?
Bitte fragen Sie nicht, warum ich die <img/>
auf diese Weise machen muss, es ist nur ein Beispiel.
'ng-bind-html' ist nicht dazu gedacht, eckige Anweisungen zu interpolieren, nur Roh-HTML. Es gibt zahlreiche andere verwandte Beiträge dazu mit Problemumgehungen. Wenn ich es wäre, würde ich stattdessen meine eigene Anweisung verwenden, dann können Sie sich selbst kompilieren – charlietfl