相关疑难解决方法(0)

如何在Angular中观察表单更改

在Angular中,我可能有一个看起来像这样的表单:

<ng-form>
    <label>First Name</label>
    <input type="text" ng-model="model.first_name">

    <label>Last Name</label>
    <input type="text" ng-model="model.last_name">
</ng-form>
Run Code Online (Sandbox Code Playgroud)

在相应的控制器中,我可以轻松地观察对该表单内容的更改,如下所示:

function($scope) {

    $scope.model = {};

    $scope.$watch('model', () => {
        // Model has updated
    }, true);

}
Run Code Online (Sandbox Code Playgroud)

这是JSFiddle上的一个Angular示例.

我无法弄清楚如何在Angular中完成同样的事情.显然,我们不再拥有$scope$ rootScope.当然有一种方法可以实现同样的目的吗?

这是一个关于PlunkerAngular示例.

angular

143
推荐指数
3
解决办法
12万
查看次数

角度 - 如果表单值未更改,则禁用提交按钮

我有选定日期的表格。如果日期形式没有任何变化,如何禁用提交按钮?

我的 html 代码

<div class="col-xs-6">
   <label><i class="far fa-calendar-alt"></i> Start <span class="text-danger">*</span></label>
     <input id="startTrip1" name="NgbDate" data-provide="datepicker" ngbDatepicker #d="ngbDatepicker" [markDisabled]="markDisabled" [minDate]="minDates" type="text" class="form-control form-flat" [(ngModel)]="ad.start_date" (dateSelect)="onDateSelect($event, ad)" (blur)="validateInput()" (click)="d.toggle()" [ngModelOptions]="{standalone: true}" [disabled]="form.controls.tripduration.hasError('required')" >
      <div class="text-danger" *ngIf="(ad.start_date == '' || ad.start_date == undefined) && ngForm.submitted">
         * This field is required
       </div>
      <div class="text-danger" *ngIf="form.controls.tripduration.hasError('required')">
      * Fill the durations first
      </div>
 </div>
//submit button
<button class="col-xs-12 text-center text-strong pointer custom-trip-btn" (click)="publishTrip()">
<button class="custom-trip-btn">SUBMIT</button>
Run Code Online (Sandbox Code Playgroud)

javascript forms angular

4
推荐指数
2
解决办法
8513
查看次数

Angular 反应形式 - 当用户将 UI 更改恢复为原始值时,原始值是否会重置?

我只想在表单输入更改时启用表单中的提交按钮。

提交时,窗体控件值不改变按钮应被禁用。

我尝试使用FormGroup.pristine标志来启用/禁用提交按钮。

它适用于启用按钮。

但是,true当 UI 中的值更改回其原始值时,它不会重置。

组件代码:

import { Component } from '@angular/core';
import { FormBuilder } from '@angular/forms';

@Component({
  selector: 'app-registration-form',
  templateUrl: './registration-form.component.html',
  styleUrls: ['./registration-form.component.scss']
})
export class RegistrationFormComponent {
  public registrationForm;
  public formValues = {
      gender: 1,
    };

  constructor(private formBuilder: FormBuilder) {
    this.registrationForm = formBuilder.group(this.formValues);
  }

  onSubmit(formData) {
    console.log('Your form is submitted', formData);
    this.registrationForm.reset(this.formValues);
  }
}
Run Code Online (Sandbox Code Playgroud)
<form class="registration-form" [formGroup]="registrationForm" (ngSubmit)="onSubmit(registrationForm.value)">
  <div>
    <label for="gender">Gender</label>
    <select id="gender" formControlName="gender">
      <option …
Run Code Online (Sandbox Code Playgroud)

angular angular8

4
推荐指数
1
解决办法
2547
查看次数

标签 统计

angular ×3

angular8 ×1

forms ×1

javascript ×1