Angularjs自动刷新不会在取消时停止
我正在刷新一个使用Angularjs自动刷新不会在取消时停止,angularjs,Angularjs,我正在刷新一个使用$interval检查数据的方法。我正在使用拨动开关打开/关闭。默认情况下,它以ON开始并刷新。如果我将其关闭,它将进入关闭状态,5秒钟后再次进入打开状态并继续刷新。为什么我的cancel()没有被调用 HTML 看起来您在打算使用时使用了。在JavaScript中,有三个类似的运算符很容易混淆:=、=和== 以下是MDN对赋值运算符的说明=: 为变量赋值的简单赋值运算符。赋值操作的计算结果为指定的值 因此,if(x=false)形式的语句执行以下操作: 首先,x=false将
$interval
检查数据的方法。我正在使用拨动开关打开/关闭。默认情况下,它以ON开始并刷新。如果我将其关闭,它将进入关闭状态,5秒钟后再次进入打开状态并继续刷新。为什么我的cancel()
没有被调用
HTML
看起来您在打算使用时使用了。在JavaScript中,有三个类似的运算符很容易混淆:=
、=
和==
以下是MDN对赋值运算符的说明=
:
为变量赋值的简单赋值运算符。赋值操作的计算结果为指定的值
因此,if(x=false)
形式的语句执行以下操作:
x=false
将值false
分配给变量x
。现在x
保存值false
false
。它作为if(false)
传递到if
语句中。因此,if
语句没有通过varx;
如果(x=真){
log('x=true已通过!x现在是'+x');
}
如果(x=‘香蕉’){
log('x=通过!x现在是'+x');
}
如果(x=false){
//你永远也到不了这里!
}
否则{
log('x=false失败!x现在是'+x');
}
clearInterval(myInterval);我试着在false条件中给出它,但仍然是相同的$scope.status=false
应该是$scope.status===false
或者干脆是$范围.状态
。对$scope.status=true
也进行类似的更改。更改后它停止加载,但如果我打开开关,刷新将不会启动。@Alex K请发布一个答案。我会接受的。我只是因为你的评论才解决了这个问题。
<div>
<i class="fa fa-toggle-on active" ng-if="status == true" ng-click="changeStatus();"> </i>
<i class="fa fa-toggle-on fa-rotate-180 inactive" ng-if="status ==false" ng-click="changeStatus();"> </i>
</div>
App.controller('Ctrl', [ '$scope', 'Details', '$interval', function($scope, Details, $interval ) {
$scope.availableDetailsTemp = [];
$scope.availableDetails = [];
init();
function init() {
$scope.status = true;
$scope.availableDetails = [];
$scope.availableDetailsTemp =
Details.resource2.query(function(response) {
angular.forEach(response, function(item) {
if (item) {
$scope.availableDetails.push(item);
}
});
});
}
var myInterval = null;
if ($scope.status = true) {
myInterval = $interval(init, 5000);
}
$scope.changeStatus = function(){
$scope.status = !$scope.status;
if ($scope.status = false) {
$interval.cancel(myInterval);
}
};
}]);