我有一个有效的JavaScript显示模板, 安装在母版页/显示模板中。
我有一个JSLink指向我的显示模板的视图, 一切都按预期进行。
但是,如果我对模板.js文件进行了更改,则这些更改是 没有反映在我看来。
我已经尝试了所有方法,包括更改定义的函数名称等, 只有一件事可以使我的更改得以呈现。
我必须:
我假设在这种情况下,未注册更新的功能, 因为即使我删除了文件,它仍然可以工作。
有没有一种方法可以完成此任务而不必遍历整个过程 程序? 可以强制重新注册模板吗?
如下面的示例所示,我的函数名称为数字9, 因为我做了9次。
(function () {
// Initialize the variables for overrides objects
var overrideCtx = {};
overrideCtx.Templates = {};
// alert("Override call worked");
// Use BaseViewID and ListTemplateType to narrow focus/scope on
// which web parts on the page are affected
// overrideCtx.BaseViewID = 1;
// overrideCtx.ListTemplateType = 100;
/*
* Using the Fields override leaves the rest of the rendering intact, but
* allows control over one or more specific fields in the existing view
*/
overrideCtx.Templates.Fields = {
'FirstReview': { 'View' : CustomField9 }
};
/*
* Register the template overrides.
*/
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);
})();
function CustomField9(ctx) {
// Really basic field-level conditional formatting
var ret
// alert("Custom Field9");
/* var theScore = parseFloat(theString); */
var review = ""+ctx.CurrentItem.FirstReview;
var rev = review.split(",");
var people = "Barb,Makarand,Paulo,Jorge,Nuno,Al,Hugo".split(",");
var theRet = "<span><table>";
for( i = 0; i < people.length; i++)
{
if ( rev.includes(people[i]) )
{
addentry = "<tr><td>" + people[i] + "</td><td><input type=checkbox checked /></td></tr>";
}
else
{
addentry = "<tr><td>" + people[i] + "</td><td><input type=checkbox /></td></tr>";
}
theRet += addentry;
}
theRet += "</table></span>";
return theRet;
}