Изменения шаблона отображения Javascript не работают - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть рабочий шаблон отображения JavaScript, установленный в главной странице / шаблонах отображения.

У меня есть представление с JSLink, указывающим на мой шаблон отображения, и все работает как положено.

Однако, еслиЯ делаю изменения в файле шаблона .js, эти изменения не отражаются в моем представлении.

Я перепробовал все, включая изменение имени определенной функции и т. Д., И есть только одна вещь, которая работает, чтобы мои изменения отображались.

Мне нужно:

  1. Удалить файл .js с мастер-страниц
  2. Изменить имя функции в файле вместе с другими изменениями
  3. Создать новый файл шаблона (.js) с моим обновленным скриптом
  4. Укажите представление 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;
}
...