angular.js - angular-timer 插件的finish-callback()不刷新視圖
滿天的星座
滿天的星座 2017-05-15 17:05:21
0
1
887
<p ng-show="smsSent">
<timer interval="1000" countdown="60" end-time="0" finish-callback="smsSent=!smsSent">{{seconds}}</timer>
</p>

我想在這個timer倒數計時結束後,調用finish-callback,然後smsSent的值就取反了,因此

這個p會隱藏起來,問題是....現在倒數計時到0了之後,我觀察到smsSent的值確實變了,但是

這個p並不隱藏,意味著沒有刷新試圖,求助,我改如何做才能隱藏那個p

滿天的星座
滿天的星座

全部回覆(1)
Ty80

謝邀 能提供timer指令的寫法嗎,或是給一個jsbin或jsfiddle.net的連結重現一下。目前提供的信息,是值改了,但是 Dom 沒渲染,我認為你可以在 finish-callback 中 $apply 或者 $evalAsync 一下觸發髒檢查。

------------------ 分割線 ----------------

找到你說的這個插件 https://github.com/siddii/ang... ,我一會兒 pull request,你就不用在 finish-callback 中主動觸發 $apply.

------------------ 分割線----------------
https://github.com/siddii/ang. ..

已經pull request了, 主要是下面這段,當調用$scope.finishCallback, 主動觸發髒檢查循環

             if($scope.finishCallback) {
 -              $scope.$eval($scope.finishCallback);
 +              if ($rootScope.$$phase) {
 +                $scope.$evalAsync($scope.finishCallback);
 +              } else {
 +                $scope.$apply($scope.finishCallback);
 +              }
              }
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板