不,我不認爲在這篇文章的時候SPClientTemplates模塊有一個正式的類參考。也就是說,客戶端渲染看起來並不需要對該模塊有深入的瞭解,而文檔將專注於構建參數並調用SPClientTemplates.TemplateManager.RegisterTemplateOverrides
方法。
傳遞給RegisterTemplateOverrides
的對象的接口具有以下屬性,所有這些是可選的:
- BaseViewId:該SPView.BaseViewID的量,模板應當應用;如果沒有定義,它們將適用於所有視圖。
- ListTemplateType:應該爲其應用模板的SPList.BaseTemplate類型。如果未定義,則模板將應用於所有列表。
- OnPostRender:將呈現的HTML插入到DOM後執行的函數或函數數組。
- OnPreRender:在渲染開始之前要執行的函數或函數數組。
- 模板:
TemplateOverrides
對象
- 的陣列ViewStyle:針對模板應當施加視圖式樣的SPView.StyleID。如果未定義,模板將僅應用於默認視圖樣式。
的TemplateOverrides
對象本身具有另外的可選屬性:
- 體:(功能或字符串)
- 字段:與命名屬性的字段模板地圖對象;每個屬性名稱應與列表中某個字段的內部名稱匹配,其值應爲具有四個可選屬性的對象,每個屬性都是字符串或返回要顯示的HTML字符串的函數:
- 視圖:(功能或字符串)
- EditForm:(功能或字符串)
- DisplayForm:(功能或字符串)
- NewForm:(功能或字符串)
- 頁腳:(本功能離子或字符串)
- 組:(功能或字符串)
- 部首:(功能或字符串)
- 項目:(功能或字符串)
- 查看:(功能或字符串)
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;
}
}
});
下面是我對這個答案所引用的資源:
您是否正在尋找? [SP命名空間(sp.js)](https://msdn.microsoft.com/EN-US/library/office/jj246996.aspx)它也可以從[Stack Overflow文檔](http:// stackoverflow。 com/documentation/sharepoint/1316/working-with-javascript-client-object-model-jsom#t = 2016110916390368461&a = remarks),例如它是... – Thriggle
不是專指「SP命名空間(sp.js)」您鏈接到的文檔是我發佈的第一個鏈接的一部分。該文件是好的,但它遠未完成。例如,使用JS鏈接文件進行客戶端渲染時,MSDN教程都使用可用客戶端的「SPClientTemplates」對象,但在任何地方都沒有記錄。我開始認爲我發佈的第一個鏈接是MS生產的唯一文檔,如果它是真的很差的話。 – ArmouR
我認爲你的困惑源自JSOM與[客戶端渲染](https://msdn.microsoft.com/en-us/library/office/jj220061.aspx)的無關特性的混合。 – Thriggle