Как да получите списък от колекция от списъци? getByTitle връща празен списък

Така че извличам куп списъци от host-web и ги поставям в listCollection, подобно на очертаното тук.

След това се опитвам да получа достъп до конкретен списък, наречен TestList. Въпреки това не мога да осъществя достъп до него от listCollection с помощта на getByTitle("TestList"). Ще ми даде списък без информация от списъка, който извличам.

Въпреки това, ако премина през изброител, докато намеря списък със заглавие TestList, мога да използвам това.

Някой знае ли защо това не работи?

var testList = listCollection.getByTitle("TestList");
console.log(testList);

Но това прави?

var listEnumerator = listCollection.getEnumerator();

while (listEnumerator.moveNext()) {

    oList = listEnumerator.get_current();

    if (oList.get_title() == "TestList") {
        console.log(oList);
    }
}

Тези console.log дават съответните изходи. Вижте как най-горният няма Object вътре в ClientObjectData. Защо така? какво ми липсва

въведете описание на изображението тук

Благодаря


person Charles Clayton    schedule 03.02.2015    source източник


Отговори (1)


Използвайки метода getByTitle от sp.js, трябва да използвате по този начин.

SP.ListCollection.getByTitle()

ЗАБЕЛЕЖКА: С това ще получите само името на списъка, но не и масива от обекти.

Връща списъка с указаното заглавие от колекцията.

За да получите елементите в списъка, трябва да използвате този метод.

SP.List.getItems()

Връща колекция от елементи от списъка въз основа на посочената заявка

От SP.Listgetitemns docs

Вместо просто:

var testList = listCollection.getByTitle("TestList");

Опитвам

var testList = listCollection.getByTitle("TestList");
listItemCollection = testList.getItems(""); // or use a CAMLQuery to be more specific
context.load(listItemCollection);
context.executeQueryAsync(onQuerySucceeded, onQueryFailed);

След това трябва да бъде попълнен и трябва да изглежда като втория пример.

person Ethaan    schedule 03.02.2015
comment
Не съм сигурен какво имаш предвид. Как това се различава от това, което първоначално опитах? Редът SP.ListCollection.getByTitle("TestList"); създава предсказуема грешка Uncaught TypeError: undefined is not a function. - person Charles Clayton; 03.02.2015
comment
премахнете L и поставете l lowerCase - person Ethaan; 03.02.2015
comment
трябва да работи с l lowerCase така var testList = SP.listCollection.getByTitle("TestList"); - person Ethaan; 03.02.2015
comment
Същото нещо, var testList = SP.listCollection.getByTitle("blahlblah"); Uncaught TypeError: Cannot read property 'getByTitle' of undefined. - person Charles Clayton; 04.02.2015
comment
изглежда като getByTiltle просто върнете title of the list, за да получите артикулите, имате нужда от този метод List.getItems() проверка на отговора актуализация - person Ethaan; 04.02.2015
comment
Не мисля, че е редно. Вижте този пример: msdn.microsoft. com/en-us/library/office/ getByTitle се използва за получаване на въпросния списък от колекцията, върната от clientContext.get_web().get_lists(), което се опитвам да направя. След това getItems се използва за получаване на елементите от списъка, който вече сте получили с помощта на getByTitle. - person Charles Clayton; 04.02.2015
comment
Е, това, което казвате, е правилно, защо не използвате метода като този.. testList.getItems()? - person Ethaan; 04.02.2015
comment
о! Прав си, прав си. Не го показвам в кода, който публикувах, но правя getItems() на oList, поради което беше различен от testList в console.log. Просто мислех, че по времето, когато направих console.log, те трябва да са еднакви, защото това беше преди да направя getItems. - person Charles Clayton; 04.02.2015