0

我在 sharepoint 的显示模板中有以下代码,我有一个对象数组,我需要有以下结果。

Name1
Name2
Name3

所以我可以用工具提示替换共享点多人用户字段的默认呈现。

但是,我不知道如何迭代然后连接:

截屏: 在此处输入图像描述

代码:

// 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 回答