繁体   English   中英

angular 2 4 5-如何在component.ts中定义对象变量

[英]angular 2 4 5 - how to define object variable in component.ts

我想在component.ts中定义对象变量

components.ts

  user: {
         brand: {
                 id: string,
                name: string
         },
  [k: string]: any} = {};

  ==> I want Define 'brand' object to the 'user' variable

view.html

  <form class="example-form">
    <mat-form-field class="example-full-width">
      <input matInput [(ngModel)]="user.userName"> ==> *** No Error ***
    </mat-form-field>
  </form>

  <form class="example-form">
    <mat-form-field class="example-full-width">
      <input matInput [(ngModel)]="user.brand.id"> ==> *** Error ***
    </mat-form-field>
  </form>

user.brand.id错误消息==>无法读取未定义的属性“ id”

错误指向的地方=> user.brand.id

由于user.brand未定义user.brand因此显示此错误消息。 当我尝试反映问题时,我什么也没得到,因为您没有共享导致错误的部分代码。 错误的最明显原因可能是在组件文件或其接口中初始化user模型。 请按照提供的格式解决您的问题,我的代码是->

组件文件

params: UserModel = {
  reg_username: '',
  password: {
     reg_password: ''
  }
};
foo(): void {
  this.params.password.reg_password = this.params.reg_username;
}

接口文件

export interface UserModel {
  reg_username: '';
  password: {
    reg_password: '';
  }
}

HTML文件

<input [(ngModel)]="params.reg_username">
<p>Value: {{ params.reg_username }}</p>
<input [(ngModel)]="params.password.reg_password">
<p>Value: {{ params.password.reg_password }}</p>
<button (click)='foo()'>FOO</button>

谢谢。

我在您的代码中解决了我的问题。 (在您回答之前,我已经做到了。)

我想知道。 在类型脚本中,==>模型初始化。

在类型脚本中初始化模型时,如何定义对象类型。

params: UserModel = {
reg_username: '',
password: {
   reg_password: '' ==> '' I wondered if it was the right way in typescript
                        ex) normally reg_password: string; 
                               OR    reg_password: any;



}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM