我在演示应用程序上使用JSView。在网页上,当我将模板重新链接到HTML div以获得最新值时。我想在HTML上维护x和Y索引。 当它执行模板的重新链接时,html会完全刷新,这使用户可以松开他们所在页面的x和y坐标。
非常感谢您。
$(document).ready(function () {
window.setInterval( function(){
reLinkTemplateHtml();
}, 5000);}
function reLinkTemplateHtml() {
$.getJSON("/Demo/DemoAPI/GETDemoData", { _: new Date().getTime()
}).done(function (json) {
$.templates("#Demo-template").link("#result_wrapper", json);
return true;
}).fail();
}
答案 0 :(得分:2)
调用template.link("#result_wrapper", json)
将完全重新呈现"#result_wrapper"
元素的内容。
您的情况似乎涉及使用服务器上的json来呈现和链接浏览器中的HTML内容,并且也许客户端交互会触发浏览器中数据(json)的可观察到的更新,但除此之外还需要进行一些回合将json数据发送到服务器:也许将修改后的json发送回服务器,而且还从服务器获取更新的json,其中可能包括服务器端更新。
在这种情况下,如果要在获取修改后的json时在浏览器中进行增量更新(以避免替换所有HTML,从而能够维护用户状态),则只需观察可更新的客户端部分即可被修改的json。实际上,您需要在当前json和下载的更新之间进行“区别”。
JsRender和JsViews通过使用compiled View Models,特别是vm.merge(newJson)功能,为该方案提供了支持。