Uncaught Error: The property or field has not been initialized

Luis Valencia picture Luis Valencia · Aug 31, 2014 · Viewed 25.9k times · Source

I am trying to run the following code in a simple sharepoint app, but I got this error:

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. 

Code is this one:

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());
}

The code is from a book, without any modifications:

OrgName = oListItem.get_item('Value');

Answer

Vadim Gremyachev picture Vadim Gremyachev · Aug 31, 2014

The specified error could occur due to one of the following reasons:

  1. Column with Internal Name Value does not exist in the List Configuration Values

    Since SP.ListItem.item property expects field Internal Name, please make sure the field with such a name exists in List.

  2. List Item value for a field Value could not be loaded implicitly.

    The solution: try explicitly specify what List Item properties to load using SP.ClientContext.load method. Replace the line:

    context.load(collListItems);
    

    with

    context.load(collListItems,'Include(Title,Value)');