$interval
を使用してデータを確認する方法をリフレッシュしています。トグルスイッチをON/OFFに使用しています。デフォルトでは、ONとそのリフレッシュから始まります。 OFFにするとOFFになり、5秒後に再びONになり、爽やかになります。なぜ私のcancel()
が呼び出されないのですか?あなたがcomparison operatorを使用することを意図したときにassignment operatorを使用ように見えますキャンセル時にAngularjs自動更新が停止しない
HTML
<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>
JS
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);
}
};
}]);
てclearInterval(myInterval)。 –
私はそれを偽の条件の中に入れようとしましたが、同じ – user7620991
'$ scope.status = false'は' $ scope.status === false'または単に '!$ scope.status'でなければなりません。 '$ scope.status = true'にも同様の変更を加えます。 –