Angularjs - ng-init中的setTimeout函数

时间:2017-04-30 16:32:59

标签: javascript jquery angularjs

我可以在ng-init上使用两个功能吗?怎么样? 我试过setTimeout来运行一个函数来打开一个模态,经过一段时间后,它调用关闭模态的函数,但是不起作用......

像这样:

ng-init="setTimeout(closeModal, 2000) && openModal();"

这两个函数都在控制器内部:

function ($scope, $stateParams, $ionicModal, $window, $timeout ) {




  $ionicModal.fromTemplateUrl('modal.html', {
    scope: $scope,
    animation: 'slide-in-up'
  }).then(function(modal) {
    $scope.modal = modal;
  });
  $scope.openModal = function() {
      alert("funcionou!");
    //$scope.modal.show();
      $timeout(function(){
$scope.modal.show(); 

},0)

  };

  $scope.closeModal = function() {
    $scope.modal.hide();
  };
  // Cleanup the modal when we're done with it!
  $scope.$on('$destroy', function() {
    $scope.modal.remove();
  });
  // Execute action on hide modal
  $scope.$on('modal.hidden', function() {
    // Execute action
  });
  // Execute action on remove modal
  $scope.$on('modal.removed', function() {
    // Execute action
  });

2 个答案:

答案 0 :(得分:1)

ng-init="initialFunction()"

在你的控制器内写:

function initialFunction(){
$timeout(closeModal, 2000); openModal();
}

答案 1 :(得分:0)

首先使用$timeout代替setTimeout

在调用多个函数时,在每个函数的末尾第二次使用;而不是&&

ng-init="$timeout(closeModal, 2000); openModal();"

将此添加到您的控制器

$scope.$timeout = $timeout; 

$timeout注入控制器