JSP 在同一模板上重新渲染某些数据

iqxoj9l9  于 2023-02-10  发布在  其他
关注(0)|答案(1)|浏览(214)

我有一个场景,默认情况下,我会在JSP页面上呈现JSON中的一些数据。现在,我想实现一个用例,当我单击某个菜单项时,它会触发一个函数,作为响应,该函数会使用相关数据更新模板。
因此,对于初始加载,我使用以下命令从JSON加载数据:

$.getJSON( "/somelocation/test.json", function( data ) {
    console.log(data); //json output 
    var template = $.templates("#theContent");
    var htmlOutput = template.render(data, {selectedValue: "abc"});
    $("#mainBody").html(htmlOutput);
});

现在我在一个函数中编写了相同的逻辑,该函数将在菜单项单击时触发,然后在JSP页面上,我只看到“#theContent”作为输出。

wnvonmuf

wnvonmuf1#

如果你传递一个字符串给$.templates(someString),那么JsRender会首先尝试将其作为jQuery选择器。如果jQuery被加载并且选择器返回一个模板的脚本元素,那么该模板将被使用。
如果该字符串不是有效的选择器或不返回模板块的脚本元素,则JsRender将退回到将该字符串视为模板标记。
您可以在代码上下文中测试$("#theContent")是否返回非空jQuery对象.($("#theContent").length === 1),看起来好像在代码中找不到ID为"theContent"的脚本元素。

相关问题