JavaScript DisplayTemplate SharePoint 2013ブログサイトビュー投稿ページで動作していません

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

質問

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;
 }
.

ENTER IMENTDESCRUストレーション

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top