SPFx Создание поля с помощью XML с проблемами pnp / sp и именами - PullRequest
0 голосов
/ 17 сентября 2018

Я создаю поле с помощью XML и пытаюсь назвать его:

    .then((lookupList): Promise<any> => {
        console.log("getJobsForLocation | lookupList.Id: ", lookupList.Id);

        let batchCreate = sp.web.createBatch();

        let fieldXml = `<Field Name="FieldName" Type="Lookup" DisplayName="DisplayName" List="{${lookupList.Id}}" ShowField="Title"/>`; 
        ler.list.fields.createFieldAsXml(fieldXml);  

        return batchCreate.execute();
    })

У меня вопрос, имя всегда "DisplayName"

enter image description here

Разве имя поля не должно быть "FieldName"? Мне бы хотелось, чтобы имя поля и отображаемое имя были разными.

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Опубликовано на github @ pnp / sp;это известная проблема, но она не может быть решена.

Это нюанс поведения REST API, который, боюсь, мы не можем исправить в библиотеке.

Этобыло предложено после создания поля обновить имя:

ler.list.fields.inBatch(batchCreate).createFieldAsXml(`<Field Name="${kRegion} DisplayName="${kRegion}" Type="Lookup" List="{${values[1]}}" ShowField="Title" Required="TRUE"/>`);  

batchCreate.execute()
    .then(() => {
        ler.list.fields.getByTitle(kRegion).inBatch(batchUpdate).update({
            Title: removeCamelCase(kRegion)
        });
    });
0 голосов
/ 25 сентября 2018

Вы должны использовать свойство StaticName:

let fieldXml = `<Field Name="FieldName" StaticName="FieldName" Type="Lookup" DisplayName="DisplayName" List="{${lookupList.Id}}" ShowField="Title"/>`;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...