模型更新时DOM不更新

时间:2015-03-09 18:56:05

标签: javascript rivets.js

我正在使用Rivets.js制作倒数计时器。倒数计时器最初出现,但每次调用setInterval时都不会递减。为什么呢?

使用Javascript:

function startTimer(minutes) {
    var countdown = (60 * minutes)-1;
    rivets.bind($('#timer'), { countdown: countdown });

    var timer = setInterval(function() {

        countdown--;

        if (countdown < 0) {
            clearInterval(timer);
        }
    }, 1000);
}

HTML:

<div id="timer">{countdown}</div>

1 个答案:

答案 0 :(得分:1)

您需要将铆钉与对象绑定,否则在更改变量时绑定会丢失:

function startTimer(minutes) {
    var countdownObj = {};
    var countdown = (60 * minutes)-1;
    countdownObj.cd = countdown;
    rivets.bind($('#timer'), { countdown: countdownObj });

    var timer = setInterval(function() {
        countdownObj.cd--;
        if (countdownObj.cd < 0) {
            clearInterval(timer);
        }
    }, 1000);
}

在你的HTML中:

<div id="timer">{countdown.cd}</div>

检查this plunker