Ich habe eine Richtlinie und IMG Urls mit img src Ich bin zu ersetzen Inline-Bilder anzuzeigenmachen HTML in AngularJS 1.x
function message($filter) {
var directive = {
restrict: 'EA',
scope: {
data: '='
},
link: function(scope, elem, attrs) {
scope.data.content = scope.data.content.replace(/(https?:\/\/\S+(\.png|\.jpeg|\.jpg|\.gif))/g, "<img src='$1' alt=''>");
},
template: '<span>{{data.nickname}}:</span> {{data.content}}'
};
return directive;
}
sondern um das Bild zu sehen, Inline Ich bin das HTML-Tag zu sehen, wie Text Ich untersuche $ sce, aber ich bin mir nicht sicher, wie man es innerhalb einer Direktive benutzt.
Wie Sie sehen können, wird das Tag img nur erstellt, wenn es eine URL gibt, die in einer der definierten Bildendungen endet. – handsome
Sie haben recht, ich habe meine Antwort aktualisiert, um ein ng-if in der Vorlage zu verwenden Ich habe eine Eigenschaft "hasImage" hinzugefügt. Ich fügte auch eine Erklärung dafür hinzu, warum es besser ist, keine HTML-Schablonen in der js zu erstellen. – frodo2975