延迟后触发ng-show

时间:2016-03-23 12:42:47

标签: javascript angularjs angularjs-timeout

我想在页面加载后使div出现10s。我想用棱角分明的。

ggplot(df.plot, aes(x=date, fill=color)) + 
  geom_dotplot(binwidth=1, stackgroups=TRUE) +
  coord_fixed(ratio=1) + 
  ylim(0,7) +
  facet_grid(facet ~ .) 

我有什么想法可以实现这个目标?有没有办法触发,比如设定时间后的功能?我觉得这应该很容易,而且我已经尝试过google了但是因为我不熟悉编程,所以我不确切地知道我在寻找什么

谢谢

4 个答案:

答案 0 :(得分:1)

在这种情况下,

$timeout可以通过在指定的timeout的回调中以毫秒为单位执行所需的代码来帮助您。

<强>代码

$scope.timeduration = true; //showing some element
$timeout(function(){
    $scope.timeduration = false; //hiding after 10 secs
}, 10000);

在使用之前,请确保您应该对控制器工厂函数注入$timeout依赖。

答案 1 :(得分:1)

angular.module('app', []).
factory('timeduration',function($timeout,$q){
    var timeduration = false;            
    $timeout(function(){//Simulate a request
        timeduration = true;
    },2000);
    return timeduration;
}).
controller('root',function($scope,timeduration){

    $scope.timeduration = timeduration;

});

<div class="appearingitem" ng-show="timeduration">
      // which you want to show here after delay
</div>

div显示2秒后你可以改变你想要的时间而不是2000。

希望对你有所帮助。

答案 2 :(得分:0)

使用$ timeout服务:

https://docs.angularjs.org/api/ng/service/$timeout

$scope.showItem = false
$timeout(function(){
  $scope.showItem = true;
}, 10000); // Time in ms

答案 3 :(得分:0)

试试这个

   $scope.display = function(){
     $scope.timeduration=false; 
     $timeout(function () {
        $scope.timeduration= true;
      }, 10000); 
  }