У меня есть рекурсивная функция:
scope.$watch('settings.egg', function () {
var index = 0;
function inOrder() {
setTimeout(function () {
$(".egg").eq(index).removeClass("maximize")
$(".egg").eq(index + 1).addClass("maximize")
index++;
inOrder();
}, 3000)
};
$(".egg").eq(index).addClass("maximize")
inOrder();
})
Моя функция выполняется на странице загрузки, но я этого не хочу. Я просто хочу нажимать на кнопку не на странице загрузки. Как я могу сделать? Пожалуйста..
Почему бы не настроить функцию, которая привязана к ng-клику вашей кнопки, и установить в ней свою функцию? Например:
scope.buttonClick = function() {
scope.watchFunc = scope.$watch('settings.egg', function () {
var index = 0;
function inOrder() {
setTimeout(function () {
$(".egg").eq(index).removeClass("maximize")
$(".egg").eq(index + 1).addClass("maximize")
index++;
inOrder();
}, 3000)
};
$(".egg").eq(index).addClass("maximize")
inOrder();
})
}
Вы сохранили бы это в переменной области, чтобы вы могли легко вызвать ее из другой функции позже, чтобы отменить $ watch. И в вашей разметке:
<button ng-click="buttonClick()">Click me to set the watch</button>