У меня есть рабочий шаблон отображения JavaScript, установленный в главной странице / шаблонах отображения.
У меня есть представление с JSLink, указывающим на мой шаблон отображения, и все работает как положено.
Однако, еслиЯ делаю изменения в файле шаблона .js, эти изменения не отражаются в моем представлении.
Я перепробовал все, включая изменение имени определенной функции и т. Д., И есть только одна вещь, которая работает, чтобы мои изменения отображались.
Мне нужно:
- Удалить файл .js с мастер-страниц
- Изменить имя функции в файле вместе с другими изменениями
- Создать новый файл шаблона (.js) с моим обновленным скриптом
- Укажите представление JSLink на новый шаблон.
Я предполагаю, что в этом случае обновленная функция не регистрируется, поскольку она работает даже после того, как я удалил файл.
Есть ли способ сделать это, не проходя всю процедуру?Можно ли принудительно перерегистрировать шаблон?
Как видно из приведенного ниже примера, имя моей функции имеет номер 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;
}