我正在尝试在运行时使用JavaScript修改Kendo UI模板。
我的模板包含一个“ 103”(第二行),我想在JavaScript中动态更改它。
<script type="text/x-kendo-tmpl" id="srcBldgTemplate">
#if(data.BuildingName == '103'){#
<div class="item click" data="${BuildingID}">
<input id=chkSrcBldgMain type="checkbox" class="click" checked="true" onclick="filterDataSrcBldg(this,'SrcBuildingID');" />
<span class="checkbox">#:BuildingName#</span>
</div>
#}else{#
<div class="item click" data="${BuildingID}">
<input type="checkbox" class="click" onclick="filterDataSrcBldg(this,'SrcBuildingID');" />
<span class="checkbox">#:BuildingName#</span>
</div>
#}#
</script>
我用来修改的代码可以替换元素的html。
$("#srcBldgTemplate").html().replace('103', $(currChkBldg).next().html());
但是,当我随后在$(“#srcBldgTemplate”)。html()上运行警报时,模板中的值一直为103,而不是新值。
Kendo重新加载模板时,如何动态更改模板并使用更新的模板值?
您的问题是那.html()
是一个GET方法。它仅获取模板的副本,因此当您替换值时,它将更改副本实例,但不会更改原始值。
为了设置新模板,您必须使用.html(htmlString)
所以做这样的事情:
var newTemplate = $("#srcBldgTemplate").html().replace('103', $(currChkBldg).next().html());
$("#srcBldgTemplate").html(newTemplate);
获取并替换模板,将其存储在temp变量中。然后,您可以将该临时变量设置为新模板。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句