azovl
@azovl

Не обновляется значение сервиса в директиве AngularJS?

Использую Ангуляр 1 версии.

Есть директива:

.directive('lives', ['freelive', 'liveNum', '$timeout', function(freelive, liveNum, $interval) {
        return {
            restrict: 'AE',
            replace: true,
            freelive: freelive,
            templateUrl: 'templates/directives/lives.html',
            link: function(scope, elem, attrs) {
                scope.liveValue = liveNum.total;
                
                $interval(function() {
                    liveNum.total = liveNum.total - 1;
                    console.info('UPDATED!');
                }, 3000);
            }
        };
    }]);


В данной директиве есть scope.liveValue который содержит значение из сервиса:
angular
        .module('starter')
        .value('liveNum', {
            minimum: 0,
            maximum: 20,
            oneTouch: 1,
            total: 20
        });


При изменении значения в директиве liveNum.total = liveNum.total - 1; значение в template:
<div class="live-value">{{liveValue}}</div>
не изменяется.
Почему? Нужно ли использовать watchers для этого?
  • Вопрос задан
  • 265 просмотров
Пригласить эксперта
Ответы на вопрос 1
madmages
@madmages
Человек прямоходящий
scope.liveValue = liveNum.total;
                
                $interval(function() {
                    scope.liveValue = scope.liveValue - 1;
                    console.info('UPDATED!');
                }, 3000);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы