Запустите любой другой JavaScript после отображения шаблонов отображения содержимого

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/49349

  •  09-12-2019
  •  | 
  •  

Вопрос

Это проблема:

  1. Я создаю contentbysearchwebpart, указанный с моим пользовательским дисплеем шаблоны. '
  2. Я хочу запустить какой-то другой код JavaScript, после отображения Шаблоны сделали контент
  3. Я зарегистрирую свой пользовательский файл JavaScript в шаблоне отображения.

            $includeScript(this.url, "~sitecollection/_catalogs/masterpage/Display Templates/Slider.js")'
    
    .

    Проблема в том, что мой код файла SLIDER.JS выполняет до "дисплей Код JavaScript шаблонов делает.

    Может ли кто-нибудь предоставить мне способ выполнить мой код Slider.js после Шаблоны отображения сделали содержимое Contentbysearchwebpart (cswp)?

Это было полезно?

Решение

:) my issue is solved.

I did following:

  1. Registered the custom JS file in Control_YourTemplateName.html file(like Control_Banner).

    $includeScript(this.url, "~sitecollection/_catalogs/masterpage/Display Templates/HWScripts/Banner.js");

  2. Added these three lines under the first div after body tag, in YourTemplateName.html (like Banner.html) file.

     <!--#_  
     ctx.OnPostRender = [];
     ctx.OnPostRender.push(function(){ 
        CustomMethodWhichIsIncludedInTheCustomJSFile();
     });
     _#-->  
    

But a better solution is provided below:

You can skip defining OnPostRender yourself. CBS Display Templates have this function baked in:

<!--#_
   AddPostRenderCallback(ctx, function(){
       alert(ctx.Title + "finished rendering!");
   });
_#-->

There is also AddPreRenderCallback(ctx, function(){});

Другие советы

Вы можете добавить строку кода после включения скрипта,

ExecuteOrDelayUntilScriptLoaded( function() { <your custom function name>; }, 'name of   display template ');
.

Например:

ExecuteOrDelayUntilScriptLoaded( function() { console.dir( SP.Res ); }, 'sp.js');
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top