我有这个onclick="startTimer({{ $index }},{{ product.time }})"
但显然原因是数据绑定没有呈现,所以我必须使用ng-click
来呈现值,但是ng-click
不能使用我的jQuery脚本
<script>
function startTimer(id, time) {
$("#" + id).next("div").removeClass("claimActive");
$("#" + id).next("div").addClass("claimWait");
$("#" + id).removeClass("timerActive");
$("#" + id).addClass("timerWait");
$("#" + id).next("div").children("a").text("WAIT");
if (time <= 60) {
if (time < 10) $("#" + id).children("#m").text("0" + time);
else $("#" + id).children("#m").text(time);
$("#" + id).children("#s").text("30");
} else {
if (time < 600) $("#" + id).children("#h").text("0" + time / 60);
else $("#" + id).children("#h").text(time / 60);
$("#" + id).children("#m").text("00");
$("#" + id).children("#s").text("30");
}
}
function checkTimers() {
$(".timer").each(function() {
seconds = parseInt($(this).children("#h").text()) * 3600 + parseInt($(this).children("#m").text()) * 60 + parseInt($(this).children("#s").text());
if (seconds > 0) {
hours = parseInt($(this).children("#h").text());
min = parseInt($(this).children("#m").text());
sec = parseInt($(this).children("#s").text());
if (sec > 0) {
if (sec > 10) $(this).children("#s").text(sec - 1);
else $(this).children("#s").text("0" + (sec - 1));
} else if (min > 0) {
if (min > 10) $(this).children("#m").text(min - 1);
else $(this).children("#m").text("0" + (min - 1));
$(this).children("#s").text(59);
} else if (hours > 0) {
if (hours > 10) $(this).children("#h").text(hours - 1);
else $(this).children("#h").text("0" + (hours - 1));
$(this).children("#m").text(59);
$(this).children("#s").text(59);
}
} else {
$(this).next("div").removeClass("claimWait");
$(this).next("div").addClass("claimActive");
$(this).addClass("timerActive");
$(this).removeClass("timerWait");
$(this).next("div").children("a").text("CLAIM");
}
});
}
$(document).ready(function() {
setInterval(checkTimers, 1000);
});
</script>
所以我需要在AngularJS指令中使用它,但我不知道如何做到这一点我已经添加到控制器中的所有内容都是
$scope.startTimer = function($index,productTime) {};