小编Nar*_* CM的帖子

Angular2 Reactive表单 - 使用下拉列表设置表单字段的默认值

如何在角度2反应形式中为所有表单字段设置默认值?

这是重现问题的plnkr

下面的代码不会更新下拉列值,因为它有一个与之关联的对象.

注意:这里我需要使用从Backend API收到的响应为所有表单字段设置默认值.

Component.html

<form [formGroup]="myForm" novalidate (ngSubmit)="save(myForm.value, myForm.valid)">
    <div class="form-group">
        <label>Country:</label>
        <select formControlName="country">
          <option *ngFor="let country of masterCountries" [ngValue]="country">{{country.countryName}}</option>
        </select>
    </div>

    <div class="form-group">
      <label for="">Name</label>
      <input type="text" class="form-control" formControlName="name">
      <small [hidden]="myForm.controls.name.valid || (myForm.controls.name.pristine && !submitted)" class="text-danger">
            Name is required (minimum 5 characters).
          </small>
      <!--<pre class="margin-20">{{ myForm.controls.name.errors | json }}</pre>-->
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
    <div class="margin-20">
      <div>myForm details:-</div>
      <pre>Is myForm valid?: <br>{{myForm.valid | json}}</pre>
      <pre>Is myForm submitted?: <br>{{submitted | json}}</pre>
      <pre>myForm value: <br>{{myForm.value | json}}</pre>
    </div> …
Run Code Online (Sandbox Code Playgroud)

typescript angular2-forms angular

26
推荐指数
4
解决办法
5万
查看次数

Angular 2:在valueChanges之后更新FormControl验证器

有没有办法更新ValidtorsFormControl对象?我有FormGroup一个输入是一个选择字段,当选择字段的值更改时,我希望我的FormGroup中的另一个FormControl更改验证器.

这是我的subscribeToFormChanges()FormGroup组件的方法:

private appIdRegexes = {
    ios: /^[a-zA-Z][a-zA-Z0-9]*(\.[a-zA-Z0-9\-]+){2,}$/,
    android: /^([a-zA-Z])[a-zA-Z0-9_]*(\.[a-zA-Z][a-zA-Z0-9\-]*){2,}$/,
    any: /^any$/
  };

private subscribeToFormChanges(): void {
    const myFormValueChanges$ = this.appsForm.valueChanges;
    myFormValueChanges$.subscribe(x => {
      const platform = this.appsForm.controls['platform'].value;
      const appId = this.appsForm.controls['appId'].value;

      if (this.appIdRegexes[platform]) {
        this.appsForm.controls['appId'] = new FormControl(appId, Validators.pattern(this.appIdRegexes[platform].source));
      }
    });
  }
Run Code Online (Sandbox Code Playgroud)

这是html模板:

<div class="row" [formGroup]="appsForm">
  <div class="form-group col-xs-6">
    <label>Platform</label>

    <select id="licensePlatform" class="form-control"
            formControlName="platform">
      <option *ngFor="let platform of licensePlatforms" [value]="platform">
        {{platform}}
      </option>
    </select>

    <small [hidden]="appsForm.controls.platform.valid">
      Platform is required
    </small>
  </div>

  <div class="form-goup col-xs-6"> …
Run Code Online (Sandbox Code Playgroud)

javascript typescript angular

14
推荐指数
2
解决办法
2万
查看次数

npm安装后ng服务构建错误

ng serve删除node_modules目录并使用新建目录后,我在使用cmd的angular2应用程序中收到以下错误npm install.

Error: Cannot find module 'common-tags'
    at Function.Module._resolveFilename (module.js:337:15)
    at Function.Module._load (module.js:287:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (/usr/local/lib/node_modules/angular-cli/models/config.js:8:21)
    at Module._compile (module.js:425:26)
    at Object.Module._extensions..js (module.js:432:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
Run Code Online (Sandbox Code Playgroud)

npm install common-tags手动添加它不起作用

node.js npm angular

8
推荐指数
1
解决办法
4679
查看次数

标签 统计

angular ×3

typescript ×2

angular2-forms ×1

javascript ×1

node.js ×1

npm ×1