如何从SP.FieldLookupValue对象中获取存储的属性值?
正确获取SP.FieldLookupValue中存储值的方法
嘿,别直接去碰那个$1E_1属性啦!那些带$前缀的属性都是SharePoint JSOM里的内部私有属性,它们的命名完全不固定——SharePoint版本更新的时候,这些属性名可能会突然改变,直接依赖它们的话,你的代码很容易在某次更新后就挂掉。
正确姿势:用官方公开的API方法
SP.FieldLookupValue提供了专门的getter方法来安全获取值,完全不用理那些内部属性:
- 如果你要获取显示文本(就是你看到的"KARNATAKA"),用
get_lookupValue() - 如果你要获取Lookup对应的ID,用
get_lookupId()
结合你的代码场景优化
你现在的代码是新建了一个FieldLookupValue对象并设置了lookupId,但这个新建的对象里其实还没有加载显示值("KARNATAKA")。正确的流程应该是从列表项中直接获取已经填充好的FieldLookupValue对象,再调用方法:
// 假设你已经获取到了目标列表项listItem var projectNumberLookup = listItem.get_item('你的Lookup字段内部名称'); // 获取显示值(比如"KARNATAKA") var lookupDisplayText = projectNumberLookup.get_lookupValue(); // 获取Lookup ID var lookupId = projectNumberLookup.get_lookupId();
如果确实需要手动构建FieldLookupValue对象并填充显示值,你可以用set_lookupValue()方法来设置:
var projectNumberLookup = new SP.FieldLookupValue(); var projLookupId = listItemState; projectNumberLookup.set_lookupId(projLookupId); // 手动设置显示值 projectNumberLookup.set_lookupValue("KARNATAKA"); // 之后获取显示值 var s = projectNumberLookup.get_lookupValue();
记住,永远优先使用官方提供的公开API方法,这是保证代码稳定性的最佳实践!
内容的提问来源于stack exchange,提问作者saumya bhargava
相关产品推荐
相关产品推荐

