Невозможно установить свойство 'loadSuggestionsAsync' из неопределенного в NativeScript RadDataForm - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь получить данные с удаленного сервера для autocomplete в RadDataForm.Я получаю

'loadSuggestionsAsync' с неопределенным значением.

Тот же пример работает, как и ожидалось, с RadAutoCompleteTextView из RadDataForm, но требуется внутри RadDataFrom.

<RadDataForm #dataform tkExampleTitle tkToggleNavButton [source]="person">
                <TKEntityProperty #autocomplete tkDataFormProperty name="name" displayName="Name:" index="0" autoCompleteDisplayMode="Plain" [valuesProvider]="fromProviders">
                    <TKPropertyEditor tkEntityPropertyEditor type="AutoCompleteInline"></TKPropertyEditor>
                </TKEntityProperty>
            </RadDataForm>

@ViewChild("dataform") dataformComponent: RadDataFormComponent;
@ViewChild("autocomplete") autocomplete: RadAutoCompleteTextViewComponent;
ngOnInit(): void {
        this._person = new Person("John", 23, "john@company.com", "New York", "5th Avenue", 11);

        this.jsonUrl = 'myUrl';
        let that = this;
        let options = this.createRequestHeader();
        this.autocomplete.autoCompleteTextView.loadSuggestionsAsync = function (text) {
            console.error(text);
            const promise = new Promise(function (resolve, reject) {
                http.request({
                    url: that.jsonUrl + '/' + text,
                    method: "GET",
                    headers: options,
                }).then(function (r: any) {
                    let d = r.content.toJSON();
                    const items: Array<TokenModel> = new Array();
                    for (let i = 0; i < d.length; i++) {
                        items.push(new TokenModel(d[i].label, null));
                    }
                    resolve(items);
                }).catch((err) => {
                    alert(err.message);
                    reject();
                });
            });

            return promise;
        };
    }

private createRequestHeader() {
        // set headers here e.g.
        const tokenInfo = appSettings.getString('TokenInfo');
        return {
            "Content-Type": "application/json",
            "Authorization": `Bearer ${tokenInfo}`,
        }
    }

    get fromProviders(): ObservableArray<TokenModel> {
        return this._items;
    }

Какие изменения требуются в этом коде.?Я использую NativeScript / Angular.

...