我在自定义元素中有一个双向绑定对象。它与父母的双向约束。
父客户端.ts,根据clientDetails类对客户端数据进行提取。
这里的孩子是地址自定义元素。
当使用客户端填充客户端表单时,通过绑定使用地址组件。
在address.ts(这里的孩子)中,我已经初始化了双向绑定:
@bindable({ defaultBindingMode: bindingMode.twoWay }) address = new AddressDetails;
AddressDetails如下:
import { Serializable } from "../../../../services/serializable/Serializable"
import { AddressLocation } from "./addressLocation"
export class AddressDetails implements Serializable<AddressDetails> {
address1: string;
address2: string;
addressLocation: AddressLocation;
deserialize(input) {
//console.log("INPUT: ", input)
this.address1 = input.address1;
this.address2 = input.address2;
if (input.addressLocation) {
this.addressLocation = new AddressLocation;
this.addressLocation.deserialize(input.addressLocation);
}
return this;
}
}
当请求客户端进行编辑时,一切正常,如果填充了客户端,那么地址组件也是如此。
我的问题是我在尝试设置绑定对象的一部分时遇到错误。也就是说,如果我想按照以下方式设置stateShortName:
this.address.addressLocation.stateShortName = this.companyStateShortName;
我收到错误:
address.ts:72 Uncaught (in promise) TypeError: Cannot set property 'stateShortName' of undefined
因为它指出this.address.addressLocation.stateShortName
未定义。
这导致我检查是否可以在&#34;创建的&#34;中使用{。{}}来控制{。{1}}的值。功能以及&#34; bind&#34;和&#34;附加&#34;。
所以即使我绑定了这个对象,在开始时作为AddressDetails初始化它总是出现未定义,即使所有字段都显示值仍然是错误,因为&#34; undefined&#34;。
即使我从一开始就初始化了这个对象,无论我在哪里尝试访问这个双向绑定对象我都不能因为它&#34; undefined&#34;
为什么我无法访问它? ..以及如何访问&#34; this.address&#34;或者它的任何成员,所以我可以说,将一个对象的成员设置为一个值?
以下是&#34; address.ts&#34;的全班。 for context 。每当我尝试访问或设置此类中的this.address时,我都会收到错误。
this.address