每2秒我的js函数被触发,在某些逻辑之后我想在页面上的html元素上应用css类。
var myCounter= 0;
$interval(function () {
myCounter++;
DoSomething();
$('#myElem_' + myCounter).addClass('myClass');
}, 2000);
function DoSomething() {
if (myCounter<= 35) {
if (myCounter == 0) {
$scope.myIndex= 1;
} else {
$scope.myIndex= myCounter;
}
} else {
// not implemented
}
}
在html页面上css类仅在第一次应用。计数器有效但css只能应用于第一个元素。
在html页面上,html元素上有唯一的id号,比如
<div id="myElem_1"></div>
<div id="myElem_2"></div>
答案 0 :(得分:0)
在所有更改后,您需要在函数中使用$scope.$apply();
:
function DoSomething() {
if (myCounter<= 35) {
if (myCounter == 0) {
$scope.myIndex= 1;
} else {
$scope.myIndex= myCounter;
}
} else {
// not implemented
}
$scope.$apply(); // <---put this one here.
}
我猜你正在改变/更新上面函数中的一些范围变量,所以你需要告诉angular检查更改并更新范围。