私は1秒ごとにDBからデータを取得し、このコードを持っている:
app.controller("rfController", ['$scope', '$http', '$timeout', function ($scope, $http, $timeout) {
$scope.displayData = function() {
$http.get('db.php').success(function(data) {
$scope.refreshes = data;
console.log(data);
});
$timeout(function() {
$scope.displayData();
},1000)
};
}]);
しかし、問題は、私はこれらのデータを調べるために、ブートストラップモーダルを開くいくつかのボタンを持っているということです。私はモーダルを開くと、displayData()関数がリフレッシュし続けるため、モーダルが閉じたままになります。以下はモーダルのhtmlです:
<div class="col-md-4 text-right">
<button class="btn rf-btn" id="clicked" data-toggle="modal" data-target="#rfmodal{{$index}}">More</button> <!-- OPENS MODAL -->
<!-- MODAL -->
<div class="modal small fade" tabindex="-1" role="dialog" id="rfmodal{{$index}}">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header"
ng-class="{'bg-success': refresh.status === 'Successful',
'bg-fail': refresh.status === 'Failed',
'bg-delay': refresh.status === 'Delayed'}">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title text-center">{{refresh.company}}</h4>
</div>
<div class="modal-body text-left">
<p class="detail-text"><b>Status</b>: {{refresh.status}}</p>
<p class="detail-text"><b>TimeStamp</b>: {{refresh.dt}}</p>
<p class="detail-text"><b>OrgID</b>: {{refresh.orgid}}</p>
<p class="detail-text"><b>Body</b>: {{refresh.body}}</p>
</div>
<div class="modal-footer">
<button type="button rf-btn" class="btn rf-btn" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
アイデアはありますか?
右。それはそうすることを意味しています。 1秒待ってdisplayData()自体を再度実行してください。それは同じように動作します。リフレッシュでng-repeat = refreshを実行しているので、$ scope.refreshesは問題にはなりません。しかし、問題はリフレッシュではありません。モーダルの問題のほうが...オートリフレッシュは、モーダルが開いたら停止し、閉じたときに再開する必要があります。 – jake