JavaScript DisplayTemplate SharePoint 2013ブログサイトビュー投稿ページで動作していません
-
10-12-2019 - |
質問
SharePoint 2013にブログサイトを持っています。 これが私のJSファイルのように見える方法です。
(function () {
var overrideCtx = {};
overrideCtx.Templates = {};
overrideCtx.Templates.Fields = {'Body':{'View': CBody}};
alert("CSR Registered");
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);
})();
function CBody(ctx) {
var ret = ctx.CurrentItem.Body + "<b>" +
"<button onclick='alert("template working");'>Test Button</button>" + "</b>" ;
return ret;
}
.
しかし、POSTページのJSlinkでファイルを使用する場合(sitecollection / sites / test / lists / post.aspx?id= 160)
変更が見られない場合、CSRは登録されておらず、ページがエラーを表示していない。
他のカスタムリストでは、私が似たようなアプローチを試みました。
デフォルトビューにCSRを適用できませんか?。この問題を解決するのに役立ちます。
解決 2
jSlinkファイルは、このようなWebサイトでJSlink URLを使用する場合にのみ機能します。
~sitecollection/_catalogs/masterpage/file.js
.
ファイルの実際のURLが
http://yourSPsite/sites/DevBlogs/_catalogs/masterpage/file.js
.
この後、すべてが私にとってうまく機能し始めました。
他のヒント
ViewがJSlinkをサポートしている限り、デフォルトのページもうまく機能します。あなたはあなたのCody関数内にエラーがあります。以下は変更コードです:
(function () {
var overrideCtx = {};
overrideCtx.Templates = {};
overrideCtx.Templates.Fields = {'Body':{'View': CBody}};
window.console && console.log("CSR Registered"); //Removed alert, see your console F12
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);
})();
function CBody(ctx) {
var ret = ctx.CurrentItem.Body + "<b>" +
"<button onclick=\"alert('template working');\">Test Button</button>" + "</b>" ;
return ret;
}
.
所属していません sharepoint.stackexchange