2017-05-27 2 views
1

Ich habe ein Bild wie:AngularJS ersetzen Bild mit ihm alt ist

console.log($scope.image); // <img alt="hello" class="form" src="demo.jpg"> 

ich die folgende Ausgabe (nur der Text von alt) haben wollen:

console.log($scope.image); // hello 

Es gibt eine Antwort für jquery here. Aber ich möchte das gleiche tun in Angularjs. Irgendeine Idee?

Bearbeiten: Auch $scope.image enthält mehr HTML.

Antwort

3

Sie können auch das gleiche tun, wie in Ihrer geposteten Antwort mit jquery mit 'angular.element', die Ihnen Zugriff auf mehrere jquery Funktionalitäten geben, die als jqlite bekannt sind.

var alt = angular.element($scope.image).attr('alt')

EDIT: Bei mehr HTML-Tags in Ihrem $ scope.image, dies zu tun:

var alt = angular.element($scope.image).find('img').attr('alt')

+0

Dank. Aber ich habe vergessen zu sagen, es gibt noch mehr "html" neben "img" -Tag, und wenn wir mehr HTML haben, funktioniert es nicht. –

+0

Das ist kein Problem. Wickeln Sie alle html in angle.element und rufen Sie dann .find ('img'). Dies gibt Ihnen sowieso Zugriff auf das img-Tag, dann rufen Sie wie in meinem Codebeispiel .attr ('alt') auf. – tomeks

+0

angular.element ist jQlite, wenn Sie jQuery vor Ihrer eckigen Einschließung nicht einschließen. Deshalb können Sie zum Beispiel .find() nur mit Variablennamen und nicht mit Selektoren verwenden. – quirimmo