0

У меня есть следующий код, когда пользователь нажимает кнопку «Сохранить», он ничего не должен делать, а просто изменяет текст этой кнопки для сохранения, а затем делает это отключен. Я достиг этого с помощью двух кнопок и кода контроллера следующим образом.Мне нужно ввести задержку в 2 секунды, когда пользователь нажимает кнопку «Сохранить» в угловом

Проблема заключается в том, что она отображает кнопку сохранения только на секунду, когда я нажимаю на сохранение при загрузке сохраненной кнопки, а затем кнопка сохранения исчезает (просто мерцает), я не хочу, чтобы это произошло , Что не так? Кроме того, как я могу ввести задержку 2 секунды затем показать кнопку «Сохранить».

<button type="button" id="saveEnabled" ng-click="ctrl.onClick()" ng-if="ctrl.Status !== 'Clicked'">Save</button> 
    <button type="button" id="saveDisabled" disabled="disabled" ng-if="ctrl.Status === 'Clicked'">Saved</button> 


ctrl.onClick = function() { 
     ctrl.Status = 'Clicked'; 
    }; 

ответ

0

Вы можете использовать setTimeout()

var delay=2000; //2 second

setTimeout(function() { //your code to be executed after 2 second }, delay);

1

Поскольку вы в Угловой, используйте его родной $timeout функция.

ctrl.onClick = function() { 
$timeout(
    function(){ 
     ctrl.Status = 'Clicked'; 
    }, 2000); 
}; 

Примечание: вы должны вводить $ таймаут как зависимые пакеты, но setTimeout() также хватает

+0

Bark, жаль, что не получилось, но это работало ctrl.onClick = функция() {$ окно .setTimeout (function() { $ scope. $ apply (function() { ctrl.Status = 'Clicked'; }); }, 3000);} – Learner

+0

Однако у меня все еще есть проблема с тем, что эта кнопка идиотского сохранения мерцает :(Как остановить этот мерцающий перерыв, нажав кнопку «Сохранить». Я имею в виду, кнопка «Сохранить» также появляется после нажатия кнопки «Сохранить», а затем он исчезает во второй части. Я не хочу, чтобы этот плохой опыт пользовался – Learner

+0

Я предлагаю посмотреть на [ngAnimate] в Angular (https://docs.angularjs.org/api/ngAnimate). Хотя вы можете это сделать, добавив класс, который имеет «переход» – Barak