У меня есть компонент в AngularJS, со значением, сохраненным в области, которая предоставляет URL для <img>
в представлении. Когда пользователь меняет изображение, контроллер выдает изменение через $rootScope.$emit
, и значение URL-адреса обновляется, и поэтому представление, отображающее новое загруженное изображение, должно отображаться так:
angular.module('ppApp').component('mainnav', {
templateUrl: 'app/templates/nav/nav.main-nav.tpl.htm',
controller: ['$scope', function($scope){
vm.avatarimage = '../p3sweb/avatarImage';
$rootScope.$on('refreshAvatar', function(){
console.log('change avatar')
vm.avatarimage = '../p3sweb/avatarImage';
})
}]
})
//Controller
$rootScope.$emit('refreshAvatar',function(){ //value refreshAvatar emitted when they have loaded new image
})
//view
<img data-ng-src="{{$ctrl.avatarimage}}" alt="users profile pic" class="profile-pic-radius">
Излучение принимается и«изменение аватара» зарегистрировано, но изображение не обновляется меньше. Я обновляю страницу.
Вопрос
Как обновить только компонент, чтобы он обновлялсяобласть и отображает новое изображение, которое только что было загружено?