我有一个按钮,可以在真和假之间切换范围变量:
模板:
<button ng-click="blockToggle();">Toggle</button>
控制器:
$scope.block=false;
$scope.blockToggle = function(){
//console.log('block toggle is being triggered');
if ($scope.block == false){
$scope.block = true;
} else{
$scope.block = false;
}
}
在控制器中,我还有一个间隔为200ms的函数:
$scope.scaleHeader = function(){
console.log('_________'+$scope.block);
if($scope.block == false){
console.log('scaling');
var colNumber = document.getElementsByClassName('fixedHeader')[0].getElementsByTagName('TR')[0].getElementsByTagName('TH');
for (i = 0; i < colNumber.length; i++) {
var newColSize = document.getElementById(i).getBoundingClientRect().width;
document.getElementsByClassName('fixedHeader')[0].getElementsByTagName('TR')[0].getElementsByTagName('TH')[i].style.minWidth = newColSize +"px";
document.getElementsByClassName('fixedHeader')[0].getElementsByTagName('TR')[1].getElementsByTagName('TD')[i].style.minWidth = newColSize +"px";
}
}
}
$interval( function(){ $scope.scaleHeader(); }, 200);
如果范围变量&#34;阻止&#34>,则按间隔调用的scaleHeadar函数应该只运行if条件。是假的。这将给出&#34; ____ false&#34;的控制台日志。和另一种说法&#34;缩放&#34;。
问题是当scope.block设置为True时,scaleHeader函数仍然会通过不应发生的if条件。
当block设置为false时,我希望控制台日志为&#34; ____ true&#34;就是这样。我得到的是以下控制台日志:
_____true
_____false
scaling
不要理解&#34; ____ false&#34;日志可以出现在两者之间。也许与$ digest()有关?
道歉可能出现错误的标题或缺乏表达问题的能力!