未捕获错误:属性或字段尚未初始化

Lui*_*cia 2 javascript sharepoint sharepoint-apps

我试图在一个简单的sharepoint应用程序中运行以下代码,但我收到此错误:

Uncaught Error: The property or field has not been initialized. It has not been requested or the request has not been executed. It may need to be explicitly requested. 
Run Code Online (Sandbox Code Playgroud)

代码就是这个:

var collListItems;
$(document).ready(function () {
    getConfigValues();
});
function getConfigValues() {
    var context = SP.ClientContext.get_current();
    var configList = context.get_web().get_lists().getByTitle('Configuration Values');
    var camlQuery = new SP.CamlQuery();
    collListItems = configList.getItems(camlQuery);
    context.load(collListItems);
    context.executeQueryAsync(onGetConfigValuesSuccess, onGetConfigValuesFail);
}
function onGetConfigValuesSuccess() {
    var OrgLogoUrl;
    var OrgName;
    var listItemEnumerator = collListItems.getEnumerator();
    while (listItemEnumerator.moveNext()) {
        var oListItem = listItemEnumerator.get_current();
        var current = oListItem.get_item('Title');
        switch (current) {
            case 'OrganizationName':
                OrgName = oListItem.get_item('Value');
                break;
            case 'OrganizationLogoUrl':
                OrgLogoUrl = oListItem.get_item('Value');
                break;
        };
    }
    if (OrgName && OrgName.length > 0) {
        $('#DeltaPlaceHolderPageTitleInTitleArea').html(OrgName);
        $('.ms-siteicon-img').attr('title', OrgName);
    }
    if (OrgLogoUrl && OrgLogoUrl.length > 0)
        $('.ms-siteicon-img').attr('src', OrgLogoUrl);
    else
        $('.ms-siteicon-img').attr('src', '../Images/AppLogo.png');
}
function onGetConfigValuesFail(sender, args) {
    alert('Failed to get the Configuration Values. Error:' + args.get_message());
}
Run Code Online (Sandbox Code Playgroud)

代码来自一本书,没有任何修改:

OrgName = oListItem.get_item('Value');
Run Code Online (Sandbox Code Playgroud)

Vad*_*hev 6

由于以下原因之一,可能会发生指定的错误:

  1. 列表Value存在具有内部名称的列Configuration Values

    由于SP.ListItem.item属性 需要字段Internal Name,因此请确保List中存在具有此类名称的字段.

  2. Value无法隐式加载字段的列表项值.

    解决方案:尝试使用SP.ClientContext.load方法显式指定要加载的List Item属性.替换线:

    context.load(collListItems);
    
    Run Code Online (Sandbox Code Playgroud)

    context.load(collListItems,'Include(Title,Value)');
    
    Run Code Online (Sandbox Code Playgroud)