我对ngModel有一些小问题。
我在ts文件中创建对象声明:
public descriptorSelected: DescriptorCreateSelected = {
location: '',
methodType: '',
securityLevel: '',
provider: '',
inputParameters: {
documentType: '',
email: '',
phone: '',
optionalDocumentType: '',
preferedLanguage: '',
redirectUrlDefined: '',
organizationName: '',
organizationVat: '',
certificationMode: ''
}
};
界面如下所示:
export interface DescriptorCreateSelected {
location?: string;
methodType?: string;
securityLevel?: string;
provider?: string;
inputParameters?: DescriptorInputParametersSelected
}
我想在HTML文件中使用这个对象"descriptorSelected"来绑定输入值。使用"location"声明,"methodType"工作正常。当我想绑定来自"inputParameters {}"的变量时,例如:"输入参数. documentType"我看到错误:
error TS2532: Object is possibly 'undefined'.
HTML看起来像这样:
<select name="inputParametersDocumentType" [(ngModel)]="descriptorSelected.inputParameters.documentType">
怎么了?
还有一个问题--如果我在对象模型中使用接口,在绑定变量之前,我是否总是必须声明变量?
2条答案
按热度按时间3htmauhk1#
因为
inputParameters
属性声明为可选属性。请删除?
以使其成为必需属性。如果使用某些值初始化构造函数中变量,则没有理由将所有属性声明为可选。
cgvd09ve2#
删除inputParameters的?以使其成为必需参数