我有一个场景,默认情况下,我会在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”作为输出。
1条答案
按热度按时间wnvonmuf1#
如果你传递一个字符串给
$.templates(someString)
,那么JsRender会首先尝试将其作为jQuery选择器。如果jQuery被加载并且选择器返回一个模板的脚本元素,那么该模板将被使用。如果该字符串不是有效的选择器或不返回模板块的脚本元素,则JsRender将退回到将该字符串视为模板标记。
您可以在代码上下文中测试
$("#theContent")
是否返回非空jQuery对象.($("#theContent").length === 1
),看起来好像在代码中找不到ID为"theContent"
的脚本元素。