Как разделить пользователей на панели уточнения в шаблонах отображения SharePoint Online - PullRequest
0 голосов
/ 12 марта 2019

Я новичок в отображении шаблонов в поиске SharePoint Online.У меня есть одна строка текстового поля под названием «ResearchAuthor», и оно содержит имена пользователей с разделенной точкой с запятой.Он сопоставлен со свойством RefinableString106 в схеме поиска.В результатах поиска это свойство добавляется на панель уточнения.Он отображает значение авторов, связанных с элементом поиска, с несколькими значениями.

Теперь я хочу разбить значения на строку за строкой.Я использовал приведенный ниже код для разделения имени пользователя точкой с запятой, разделенной и отображаемой в виде строки за строкой.

var authorNameFinal = refinementName;
var authorNameRefiner = "";
var authorName = "";
var isNewLine = false;
if (refinementName.indexOf(";") !== -1) {
   authorName = refinementName.split(";"); //refinementName.replace(/\n/g, ";").split(";");
   for (var i in authorName) {
      if (authorName[i] !== "") {
          authorNameRefiner += authorName[i] + "\n";
      }
   }

   // remove last new line character
   if(authorNameRefiner.lastIndexOf("\n") > 0) {
       isNewLine = true;
       authorNameFinal = authorNameRefiner.substring(0, authorNameRefiner.lastIndexOf("\n"));
    } else {
        authorNameFinal = authorNameRefiner;
    }
}

И HTML-код ниже для отображения элементов.

<code><a id='FilterLink' class='_#= $htmlEncode(aClass) =#_' onclick="_#= aOnClick =#_" href='javascript:{}' title='_#= $htmlEncode(String.format(Srch.U.loadResource("rf_RefineBy"), authorNameFinal)) =#_'>
                <div id='RefinementName' class='_#= nameClass =#_'> <pre>_#= $htmlEncode(authorNameFinal) =#_

Отсюда, если я щелкаю имя пользователя с разделенным значением, оно не фильтрует конкретного пользователя, а отбирает всех пользователей.Например, пользователи отображаются, как показано ниже на панели уточнения.(Пользователь значения muti - Victor, Test1, SPTest2)

Philip
John
Test
Victor
Test1
SPTest2

Если я щелкаю пользователя Victor, он не фильтрует элементы, загруженные Victor, а фильтрует Victor, Test1 и SPTest2.

Как я могу передать одно имя пользователя в событии клика?Пожалуйста, поделитесь своим решением.Заранее спасибо.

...