Ho bisogno di visualizzare un'immagine nelle sue dimensioni reali, anche se è più grande del suo contenitore. Ho provato il trucco di usare variabili Immagine e capturing the size on load con qualcosa di simile:Visualizza l'immagine nelle sue dimensioni reali in angular.js
HTML:
<div ng-controller="MyCtrl">
<input ng-model="imageurl" type="url" />
<button ng-click="loadimage()" type="button">Load Image</button>
<img ng-src="{{image.path}}"
style="width: {{image.width}}px; height: {{image.height}}px" />
</div>
Javascript:
.controller("MyCtrl", ["$scope", function ($scope) {
$scope.image = {
path: "",
width: 0,
height: 0
}
$scope.loadimage = function() {
var img = new Image();
img.onload = function() {
$scope.image.width = img.width;
$scope.image.height = img.height;
$scope.image.path = $scope.imageurl;
}
img.src = $scope.imageurl;
}
}]);
Questo script funziona, ma solo dopo che il pulsante viene premuto più volte se l'immagine è grande
Cosa devo fare per farlo funzionare in un clic?
C'è un modo migliore per scoprire la dimensione dell'immagine di questo?
Spostare il codice per una direttiva - NON tentare di chiamare la funzione onload all'interno del controller - Leggere le migliori pratiche qui: http://docs.angularjs.org/misc/faq#dommanipulation – callmekatootie
@callmekatootie Can hai elaborato? Perché spostare l'onload in una direttiva è migliore? –