首页 > 解决方案 > 无法在 NativeScript RadDataForm 中设置未定义的属性“loadSuggestionsAsync”

问题描述

我正在尝试从远程服务器获取数据以获取autocompletein RadDataForm。我明白了

未定义的“loadSuggestionsAsync”。

RadAutoCompleteTextView相同的示例在out ofRadDataForm但需要 inside时按预期工作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。

标签: angularnativescriptangular2-nativescript

解决方案


推荐阅读