0

SharePoint の表示テンプレートに次のコードがあり、オブジェクトの配列があり、次の結果が必要です。

Name1
Name2
Name3

したがって、sharepoint の複数ユーザー ユーザー フィールドの既定のレンダリングをツールヒントに置き換えることができます。

ただし、反復してから連結する方法がわかりません:

スクリーンショット: ここに画像の説明を入力

コード:

// List View - Substring Long String Sample 
// Muawiyah Shannak , @MuShannak 

(function () { 

    // Create object that have the context information about the field that we want to change it's output render  
    var projectTeamContext = {}; 
    projectTeamContext.Templates = {}; 
    projectTeamContext.Templates.Fields = { 
        // Apply the new rendering for Body field on list view 
        "Project_x0020_Team": { "View": ProjectTeamTemplate } 
    }; 

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(projectTeamContext); 

})(); 

// This function provides the rendering logic 
function ProjectTeamTemplate(ctx) { 

    var projectTeamValue = ctx.CurrentItem[ctx.CurrentFieldSchema.Name]; 

    //newBodyvalue should have the list of all display names and it will be rendered as a tooltip automaticlaly

    return "<span title='" + projectTeamValue + "'>" + newBodyValue + "</span>"; 

} 
4

1 に答える 1

1

配列オブジェクトのプロパティ値をprojectTeamValue新しい配列に「マップ」し、それらの値をまとめて「結合」できます (この例では「,」をセパレータとして使用)。

var newBodyValue = projectTeamValue.map(function(person) {
    return person.value;
}).join(", ");

projectTeamValue配列が次のようになっている場合:

[{ value: "Name1" }, { value: "Name2" }, { value: "Name3" }]

次にnewBodyValue、次のようになります。

"Name1, Name2, Name3"

補足: Array.prototype.map()IE 8 以下では利用できませんでしたが、他のすべてのブラウザーでは動作するはずです。

于 2014-10-07T11:35:22.037 に答える