Я новичок в AngularJS, исходя из фона jQuery. На данный момент я делаю свои первые шаги и создаю несколько примеров страниц с помощью Angular.
Теперь я хотел добиться чего-то вроде этого: подумайте о приложении с двумя «страницами». Во-первых, это главная страница с текстом и т. д., а на другом есть таймер. Таймер должен начинаться с 0 и считать до бесконечности каждую секунду, прямо в момент запуска приложения. Это первое, чего я не могу добиться. Мой таймер запускается только тогда, когда я перехожу на вторую страницу.
Вторая проблема: когда таймер работает, я хочу просмотреть все страницы в приложении, а таймер все еще должен считать в фоновом режиме. Что ж, на данный момент он работает в фоновом режиме, но каждый раз, когда я перехожу на страницу с таймером, кажется, что открывается другая задача, которая подсчитывает таймер, что приводит к очень редкому и более быстрому подсчету.
В моем индексном html я использую ng-view для вставки других страниц с помощью ngRoute. Это прекрасно работает.
Моя страница таймера выглядит так:
<div ng-controller="TimeCtrl">
<p>Counter: {{counter.getValue()}}</p>
</div>
Затем я написал контроллер таймера для своего приложения:
app.controller("TimeCtrl", function($scope, $interval, Counter){
$scope.counter = Counter;
$interval(function(){
$scope.counter.update();
}, 1000);
});
И есть фабрика счетчиков:
app.factory("Counter", function () {
this.counter = 0;
var self = this;
return {
update : function () {
self.counter++;
},
getValue : function () {
return self.counter;
}
}
});
Я был бы признателен за любую помощь, так как Angular поначалу дается мне не так просто.