【发布时间】:2019-01-27 11:41:44
【问题描述】:
早上好! 我已经使用 Ionic 几个星期了,我认为我实际上了解 typescript 和 angular 的工作原理,但我发现自己遇到了一个奇怪的问题,我认为这会很愚蠢......
我正在尝试创建一个名为pendingWaybills 的对象,其中包含一些名为waybills、clients 和clientWaybills 的属性。问题是我正在以这种方式创建它:
pendingWaybills: {
waybills: any
clients: any,
clientWaybills: any,
};
我也试过
pendingWaybills: {
"waybills": any,
"clients": any,
"clientWaybills": any,
};
还有其他一些方法,但是当我尝试为该属性分配值时,我收到以下错误:TypeError: Cannot set property 'waybills' of undefined
我还尝试分配一些字符串或整数,以查看它是否与我尝试分配的数据有关,例如this.pendingWaybills.waybills = "Hi";,但我仍然遇到相同的错误...
很高兴获得一些帮助,因为我认为这完全是关于创建对象的方式(而且我也认为这会很愚蠢),但我被困在这里了。 谢谢!
编辑: 这是我尝试将数据分配给对象的地方。 (变量data是一个json)
loadPendingWaybills(){
this.loadClients(2)
.then(data => {
this.pendingWaybills.waybills = data;
var preClients = this.pendingWaybills.waybills;
this.clients = [];
for(let i = 0;i < preClients.length; i++){
if(this.pendingWaybills.clients.indexOf(preClients[i].descr1_sped) == -1){
this.pendingWaybills.clients.push(preClients[i].descr1_sped)
}
}
this.pendingWaybills.clientWaybills = [];
for(let i = 0; i < this.pendingWaybills.clients.length; i++){
this.getWaybills(this.pendingWaybills.clients[i], 2)
.then(data => {
if(this.pendingWaybills.clientWaybills[i] != data){
this.pendingWaybills.clientWaybills[i] = data;
}
});
}
});
}
【问题讨论】:
-
你能把完整的代码放在你实例化和重新分配的地方吗?
-
完成!我没有实例化该对象,因为理论上它是在变量声明中创建的,并且足以为其分配值,对吗? (或者这就是我的想法)
-
它是嵌套对象,声明时不能立即创建。示例
var xxx = 'hi';很好。但是如果你这样做var xxx.yyy = 'hi'就不好了,因为xxx之前没有定义所以xxx的yyy会导致错误。
标签: angularjs typescript object ionic-framework instantiation