2

В настоящее время мы переходим на SP2013 на моем месте работы, перейдя с SP2007. Таким образом, рендеринг клиентской стороны/JSLink, JSOM и т. Д. - это все новые технологии, доступные нам, однако при поиске документации по этим я не могу найти какой-либо обычный стандартный справочный материал Microsoft MSW, который обычно доступен. Они существуют?Sharepoint 2013 Документация API JSOM/Javascript?

Отключить мои пальцы Я не могу найти ничего полезного или в глубине. Да, есть несколько статей MSDN с некоторыми примерами и многочисленными сообщениями в блогах, но в идеале я хотел бы сам ознакомиться с справочной документацией API, чем с помощью google с помощью кода, который я бы хотел написать.

Searching оказалось эти ресурсы:

  • JavaScript ссылки API для SharePoint 2013 - link
  • Полные основные операции с использованием JavaScript кода библиотеки в SharePoint 2013 - link

Однако первая ссылка страшный, неполный и пустой в большинстве случаев. Вторая ссылка дает несколько примеров, но опять же они не очень полезны, если я пытаюсь увидеть, какие свойства и методы возвращает объект контекста, который SPCLientTemplates.Utility.GetFormContextForCurrentField (ctx) поддерживает (без отладки моего пути через все в браузере).

Кажется странным, что для этого нет никакой реальной документации, я что-то упускаю?

Заранее благодарим за любой свет, который вы, ребята, можете пролить на это.

+0

Вы ищете это? [SP namespace (sp.js)] (https://msdn.microsoft.com/EN-US/library/office/jj246996.aspx) Он также удобно связан с документацией [Переполнение стека] (http: // stackoverflow. com/documentation/sharepoint/1316/working-with-javascript-client-object-model-jsom # t = 2016110916390368461 & a = замечания), например, это ... – Thriggle

+0

Не конкретно, пространство имен SP (sp.js) " документация, на которую вы ссылаетесь, является частью первой ссылки, которую я опубликовал. документация в порядке, но далеко не полная.Например, для рендеринга клиентской стороны с помощью файла ссылки JS в учебниках MSDN все используют объект «SPClientTemplates», доступный на стороне клиента, но он нигде не документирован. Я начинаю думать, что первая ссылка, которую я опубликовал, - это единственная документация MS, которая, если она есть, действительно бедна с их стороны. – ArmouR

+0

Я думаю, что ваше замешательство связано с объединением JSOM с несвязанной функцией [рендеринг стороны клиента] (https://msdn.microsoft.com/en-us/library/office/jj220061.aspx). – Thriggle

ответ

2

Нет, я не думаю, что есть официальная ссылка класса для модуля SPClientTemplates во время этого сообщения. Тем не менее, рендеринг на стороне клиента, по-видимому, не требует каких-либо глубоких знаний об этом модуле, при этом документация вместо этого фокусируется на построении параметров и вызове метода SPClientTemplates.TemplateManager.RegisterTemplateOverrides.

Интерфейс объекта, который вы передаете RegisterTemplateOverrides обладает следующими свойствами, все из которых являются обязательными:

  • BaseViewId: SPView.BaseViewID, для которых шаблоны должны быть применены; если они не определены, они будут применяться ко всем представлениям.
  • ListTemplateType: Тип SPList.BaseTemplate, для которого должны применяться шаблоны. Если они не определены, шаблоны будут применяться ко всем спискам.
  • OnPostRender: Функция или массив функций, которые будут выполнены после того, как визуализированный HTML будет вставлен в DOM.
  • OnPreRender: Функция или массив функций, которые должны быть выполнены до начала рендеринга.
  • Шаблоны: массив объектов TemplateOverrides
  • ViewStyle: SPView.StyleID стиля представления, для которых шаблоны должны быть применены. Если они не определены, шаблоны будут применяться только к стилю представления по умолчанию.

TemplateOverrides сами объекты имеют дополнительные необязательные свойства:

  • Кузов: (функция или строка)
  • Поля: шаблон поля объекта карты с именованными свойствами; каждое имя свойства должно соответствовать внутреннему имени поля в списке, а его значение должно быть объектом с четырьмя необязательными свойствами, каждый из которых является либо строкой, либо функцией, которая возвращает строку HTML для отображения:
    • Вид: (функция или строка)
    • EditForm: (функция или строка)
    • DisplayForm: (функция или строка)
    • NEWFORM: (функция или строка)
  • Footer: (функц ион или строка)
  • Группа: (функция или строка)
  • Заголовок: (функция или строка)
  • Пункт: (функция или строка)
  • Просмотр: (функция или строка)

JavaScript имеет слабую типизацию, поэтому вы можете создать объект, придерживающийся этого интерфейса, просто указав вручную его приложение rties. В качестве примера объект будет выглядеть примерно так:

var options = { 
    OnPreRender: /* function or array of functions */, 
    Templates: { 
     View: /* function or string */, 
     Body: /* function or string */, 
     Header: /* function or string */, 
     Footer: /* function or string */, 
     Group: /* function or string */, 
     Item: /* function or string */, 
      Fields: { 
       'Field1InternalName': { 
        View: /* function or string */, 
        EditForm: /* function or string */, 
        DisplayForm: /* function or string */, 
        NewForm: /* function or string */ 
       }, 
       'Field2InternalName': { 
        View: /* function or string */, 
     EditForm: /* function or string */, 
     DisplayForm: /* function or string */, 
     NewForm: /* function or string */ 
       }, 
      } 
     }, 
    OnPostRender: /* function or array of functions */ 
}; 

SPClientTemplates.TemplateManager.RegisterTemplateOverrides(options) 

Если интерфейс принимает либо функцию или строку, которую можно нажать на объект контекста, чтобы получить значения из списка. Если вы используете функцию, объект контекста будет доступен в качестве параметра. В строке вы можете использовать специальные токены <#= ... #> для доступа к объекту ctx.

Например,

SPClientTemplates.TemplateManager.RegisterTemplateOverrides({ 
    Templates: { 
     Footer: "This is the footer of <#= ctx.ListTitle #>" 
    } 
}); 

или

SPClientTemplates.TemplateManager.RegisterTemplateOverrides({ 
    Templates: { 
     Header: function(ctx) { 
      return "This is the header of " + ctx.ListTitle; 
     } 
    } 
}); 

Вот ресурсы, я ссылочные за этот ответ:

+0

Спасибо, что нашли время, чтобы напечатать некоторые примеры, я просмотрю ссылки, на которые вы ссылались. Я отметил это как правильный ответ, так как вы подтвердили, что нет документации от Microsoft. еще раз спасибо – ArmouR

Смежные вопросы