我一直在玩RivetsJS,在我重新分配最初用作模型的对象之前,它可以完美地工作。例如,我一直在JSFiddle中尝试以下操作:

JavaScript:

var testObject = {
    prop1: "ONE",
    prop2: "TWO"
};

var testObject2 = {
    prop1: "THREE",
    prop2: "FOUR"
}

var testBind = rivets.bind($("#properties"), {
    test: testObject
});

$("#randomize").click(function(e) {
    testObject.prop1 = Math.random();
    testObject.prop2 = Math.random();
});

$("#change").click(function(e) {
    testObject = $.extend(true, {}, testObject2);
});


HTML:

<div id="properties">
    <p>Prop1: { test.prop1 }</p>
    <p>Prop2: { test.prop2 }</p>
</div>

<button id="randomize">Randomize</button>
<button id="change">Change</button>


首先,这很完美。该网页显示“一个”和“两个”,当我单击“随机化”时,它们显示随机化的值。但是,当我单击“更改”时,什么也没有发生,并且当我单击“随机化”时,元素也会停止更新。

我想在单击“更改”时尝试再次解除绑定和绑定,但这也不起作用。

Here's the JSFiddle

最佳答案

他们有一个专门的功能,您可以参考github讨论这个问题
https://github.com/mikeric/rivets/issues/131

你现在可以简单地写这个

var otherTestObject = { test2: { prop1: "THREE", prop2: "FOUR" }};testBind.update(otherTestObject);

关于javascript - 重新分配模型后RivetsJS不更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21565615/

10-09 14:41