можно ли связать дату с сервисомProvider с $ watch?AngularJS - привязка к свойствам поставщика
Мой вопрос: могу ли я привязать данные службы поставщика к моему представлению?
Я пытаюсь связать объект $ get из представления в моем представлении, потому что поставщик загружается на фазе инициализации без контроллера.
Я пробую это на этом пути, но я не получаю никаких обновлений. http://plnkr.co/edit/t3PrE6lX1EDIMuqKyTW0?p=preview
<body ng-app="ServiceNotification">
<div style="border-style:dotted" ng-controller="TimerCtrl1">
TimerCtrl1<br/>
Last Updated: {{lastUpdated}}<br/>
Last Updated: {{calls}}<br/>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.js"></script>
<script type="text/javascript">
var app = angular.module("ServiceNotification", []);
function TimerCtrl1($scope, Timer) {
$scope.$watch(function() { return Timer.data; }, function (data){
console.log("In $watch - data:" + data);
$scope.lastUpdated = data.lastUpdated;
$scope.calls = data.calls;
}, true); // <-- don't forgt the true
};
app.provider("Timer", function() {
this.$get = function() {
var data = { lastUpdated: new Date(), calls: 0 };
var updateTimer = function() {
data.lastUpdated = new Date();
data.calls += 1;
console.log("updateTimer: " + data.lastUpdated);
window.setTimeout(updateTimer, 5000);
};
updateTimer();
return {
data: data
}
}
});
</script>
Благодаря Thomas
Пожалуйста, ваш код здесь, если ссылка истекает, или станет unaccessable, вопрос будет иметь меньше смысла. –