我正在尝试使用angularResource.get(params)访问API

该类的模型如下所示:

export class d_stp_searchbar implements Id_stp_searchbar {

    lperiode?: number;
    private _lsichtweise: number;
    scode?: string;
    sbezeichnung?: string;
    bezeichnungLabel: string;

    set lsichtweise(value) {
        this._lsichtweise = value;
        this.bezeichnungLabel = this.lsichtweise === 5 ? "Name" : "Bezeichnung";
    }

    get lsichtweise() {
        return this._lsichtweise;
    }

    public bezeichnung() {
        if (this.lsichtweise === 5) {
            this.bezeichnungLabel = "Name";
        } else {
            this.bezeichnungLabel = "Bezeichnung";
        }
    }
}


我在其中调用api的函数如下所示:

searchStundenplan(params: d_stp_searchbar): angular.IPromise<any> {
    this.searchStundenplanParams = params;
    this.localStorageService.set("searchStundenplanParams", this.searchStundenplanParams);

    return this.searchStundenplanResource.get(params)
        .$promise.then((result) => {
            this.searchStundenplanResult = result;
            this.searchStundenplanResultChangedNotify();
        });
 }


我面临的问题是,将被调用的URL如下所示:

GET /api/search/Stundenplan?_lsichtweise=1&bezeichnungLabel=Bezeichnung&lperiode=86

但我想使用_lsichtweise lsichtweise代替。

我是否使用错误或有人知道,为什么不使用公共财产lsichtweise

提前致谢

最佳答案

我能够自己修复它:

问题是,d_stp_searchbar仅在我们第一次调用它时才正确实例化。

我们正在将JSON加载到TypeScript对象中,如下所示:

this.searchParamsStundenplan = localStorageService.get("searchParamsStundenplan") as d_stp_searchbar;


但是searchParamsStundenplan不包含(在提到的问题中)lsichtweise getter和setter,因为它是一个没有任何功能的纯数据对象。

因此,我们必须通过以下方式创建实例:

let searchParamsStundenplanTemp = new d_stp_searchbar();
searchParamsStundenplanTemp.bindinglsichtweise = this.searchParamsStundenplan.bindinglsichtweise;
searchParamsStundenplanTemp.lperiode = this.searchParamsStundenplan.lperiode;
searchParamsStundenplanTemp.scode = this.searchParamsStundenplan.scode;
this.searchParamsStundenplan = searchParamsStundenplanTemp;


这样工作。

07-24 09:17