Я пытаюсь использовать переменную, объявленную в директиве 'link: function
в представлении директивы html.
Переменная, которую я пытаюсь использовать, это int из объекта, который (этот объект) объявлен как $ scopeПеременная с именем слайдера.
Я пытаюсь отобразить ее:
<div>
{{ slider.step }}
</div>
И напечатанное значение равно aa : 1
, и оно не меняется, хотя должно быть.Оно постоянно равно 1, и оно не хочет перепривязываться :( хотя я изменяю это значение в коде позже. Посмотрите на полный код директивы. Я изменяю его значение в нескольких местах:
.Функция директивы .in ..
link: function($scope, el) {
$scope.slider = {
step: 1,
changeSlide: function (step) {
if(step === 1) {
this.step = 1;
console.log('changed step to 1: ' + $scope.slider.step);
}
if(step === 2) {
this.step = 2;
console.log('changed step to 2: ' + $scope.slider.step);
}
}
}
$timeout(function () {
var i = 1;
$scope.slider.changeSlide(i);
setInterval(function () {
i++; if(i === 3) i = 1;
$scope.slider.changeSlide(i);
}, 5000);
});
}
Я изменяю шаг в if(step === 2)
.
В принципе, это правильно работает вертикальный слайдер. Единственное, чего не хватает, так это того, что я не могу получить доступтекущий шаг из вида, и я не могу отобразить правильную активную точку «какой слайд в настоящее время выбран». Вот почему мне нужно, чтобы этот шаг int в поле зрения, но я не могу.
Здесь PLNKR демо.