Angular 无法读取属性';单位';未定义的

Angular 无法读取属性';单位';未定义的,angular,Angular,我已经在angular中创建了一个模板驱动的表单。但我得到了错误,因为无法读取未定义的属性“单位”。我还创建了一个模型。并在ts文件中定义。仍然收到此错误。请提供任何帮助 user-choice.component.html <form name="form" #f="ngForm" class="form-horizontal"> <div class="border mt-2 p-2 pt-4"> <div class="form-row">

我已经在angular中创建了一个模板驱动的表单。但我得到了错误,因为无法读取未定义的属性“单位”。我还创建了一个模型。并在ts文件中定义。仍然收到此错误。请提供任何帮助

user-choice.component.html

<form name="form" #f="ngForm" class="form-horizontal">
  <div class="border mt-2  p-2 pt-4">
    <div class="form-row">
      <div class="form-group col-md-12">
        <label for="units">
       Please specify the number of units being used: &nbsp;&nbsp;</label>
       <input type="number" min="1" max="12" class="col-sm-2 pr-0 pl-0 col-form-label" [(ngModel)]="userChoice.units.value" name="units"  >
      </div>
    </div>
</form>
user-choice.model.ts

import { BasicSearchModelI } from '../../../../../core/base';

export class UserChoiceModel {
      units: BasicSearchModelI = {
            value: ''

      };
      qty: BasicSearchModelI = {
            value: ''

      };
      desc: BasicSearchModelI = {
            value: ''

      };

}

您的模型名是
userChoiceModel
,但在模板中,您使用的是
userChoice
。您需要将
ngModel
更新为
[(ngModel)]=“userChoiceModel.units.value”

现在,您只需在组件中初始化
userChoiceModel
。您所做的只是给它一个类型,但它的值仍然是未定义的。您可以这样初始化它

userChoiceModel:userChoiceModel=newuserchoicemodel();

您对此有stackblitz吗?
import { BasicSearchModelI } from '../../../../../core/base';

export class UserChoiceModel {
      units: BasicSearchModelI = {
            value: ''

      };
      qty: BasicSearchModelI = {
            value: ''

      };
      desc: BasicSearchModelI = {
            value: ''

      };

}