javascript - Remove img-element from Angular page -
i'm creating angular web app in want show image @ first, when click on button, want remove default image , replace videostream of webcam. far, removing image - element remains hard...
angular.module('qrwebapp').directive('qrscanner', ['$timeout', 'openscannerservice', function($timeout, openscannerservice) { return { restrict: 'e', scope: { ngsuccess: '&ngsuccess', ngerror: '&ngerror', ngvideoerror: '&ngvideoerror' }, link: function(scope, element, attrs) { var isopen; var onlyopenonce = 0; var image = document.createelement('img'); image.setattribute('id', 'defaultimage'); image.setattribute('src', 'assets/images/defaultimage.png'); image.setattribute('width', '400'); image.setattribute('height', '300'); image.setattribute('alt', 'defaultimage'); scope.$on('handlepublish', function() { isopen = openscannerservice.sharedboolean; if(isopen){ //some code //finding image on angular page var findedelement = angular.element('#defaultimage'); findedelement.remove(); var context; if(onlyopenonce < 1){ angular.element(element).append(video); angular.element(element).append(canvas); context = canvas.getcontext('2d'); } onlyopenonce++; } else { angular.element(element).append(image); } }); } }; }]); does have idea i'm doing wrong?
you should not try remove dom wise. instead use ng-if conditionally renders elements on page.
for e.g., in html
<img id="imgid" src="assets/images/defaultimage.png" ng-if="renderimage" /> <canvas ng-if="rendercanvas"></canvas> and in directive:
link: function(scope, element, attrs) { scope.renderimage = false; // renders image default scope.rendercanvas = true; // renders canvas default scope.$on('handlepublish', function() { scope.renderimage = false; // image element removed dom scope.rendercanvas = true; // canvas element rendered in dom }
Comments
Post a Comment