Я думаю, что поскольку вы используете $interval
, чтобы выполнить это действие только один раз (потому что вы указали третий параметр как 1, то есть количество раз, которое таймер должен работать).$timeout
будет лучшим вариантом для этого действия.Кроме того, почему вы делаете return false;
, кажется, что это не нужно.
Можете ли вы проверить, решает ли ваша проблема решение, приведенное ниже?
var app = angular.module('myApp', []);
app.controller('MyController', function MyController($scope, $timeout) {
timer = $timeout(function() {
//OpenpopUp(uiService);
console.log("timer works");
}, 4000);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-controller='MyController' ng-app="myApp">
</div>