我正在尝试使用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;
这样工作。