Я пытаюсь постоянно обновлять мое значение в контроллере.Может заставить это работать с начальным значением свойства, но это не обновляет позже.Я пробовал так много способов сделать это и прошел через множество потоков, но я не могу заставить его работать ... Я уже почти разочаровался в этом, поскольку я не знаю, в чем проблема.
Я стараюсь избегать использования вещания как можно чаще в этой ситуации.Вы можете заметить что-то очевидное, что я делаю не так?
angular.module('app',[])
.controller('mainCtrl', function(userService) {
var vm = this;
vm.livePropertyFromService = userService.getValue('property');
vm.incrementServiceProperty = function() {
userService.update('property', userService.user.property + 1);
console.log('userService.user.property = ', userService.user.property);
}
})
.service('userService', function($window) {
var service = this;
service.user = {
property: 0
};
service.update = function(propertyName, property) {
service.user[propertyName] = property;
};
return {
update: function(propertyName, property) {
service.user[propertyName] = property;
},
getValue: function(key) {
return service.user[key];
},
user: service.user
}
});
<html ng-app="app">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.5/angular.min.js"></script>
</head>
<body>
<div ng-controller="mainCtrl as vm">
<button ng-click="vm.incrementServiceProperty()">Increment property</button>
<span ng-bind="vm.livePropertyFromService"></span>
</div>
</body>
</html>