[Angualr 2] Watch for changes

You can watch for form / control changes by using .valueChanges.observe({...}):

复制代码
        this.sku.valueChanges.observer({
            next: (value)=>{
                console.log("sku has changed to: " , value);
            }
        })
        
        this.myForm.valueChanges.observer({
            next: (value)=>{
                console.log("form has change to: ",value);
            }
        })
复制代码

 

 

Code:

复制代码
import {Component, View, FORM_DIRECTIVES, Validators, FormBuilder, NgIf} from 'angular2/angular2';

@Component({
    selector: 'demo-form-sku'
})
@View({
    directives: [FORM_DIRECTIVES, NgIf],
    template: `
       <div>
        <h2>Demo Form: Sku</h2>
        <!-- ngForm is attched to the form, and #f="form" form is also come from ngForm-->
        <form [ng-form-model]="myForm"
        (submit)="onSubmit(myForm.value)">
            <div class="form-group" [class.has-error]="!sku.valid && sku.touched">
                <label for="skuInput">SKU</label>
                <input type="text"
                class="form-control"
                id="skuInput"
                #sku = "form"
                placeholder="SKU"
                [ng-form-control]="myForm.controls['sku']">
            </div>
            <div *ng-if="!sku.control.valid"
               class="bg-warning">SKU is invalid</div>
            <button type="submit" class="btn btn-default">Submit
            </button>
            <div *ng-if="sku.control.hasError('invalidSku')">
                SKU is required
            </div>

        </form>
        <div *ng-if="!myForm.valid"
              class="bg-warning">Form is invalid</div>
       </div>
    `
})

export class DemoFormSku {
    myForm: ControlGroup;
    constructor(fb:FormBuilder) {
        this.myForm = fb.group({
            "sku": ["", Validators.compose([
                Validators.required,
                skuValidator
            ])]
        });
        this.sku = this.myForm.controls['sku'];

        this.sku.valueChanges.observer({
            next: (value)=>{
                console.log("sku has changed to: " , value);
            }
        })
        
        this.myForm.valueChanges.observer({
            next: (value)=>{
                console.log("form has change to: ",value);
            }
        })
    }

    onSubmit(value){
        console.log(value);
    }
    
    function skuValidator(control){
         if(!control.value.match(/^123/)){
             return {invalidSku: true};
         }
    }
}
复制代码

 

posted @   Zhentiw  阅读(461)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2014-11-09 [Angular-Scaled Web] 6. Navigating between states with ui-router
2014-11-09 [Angular-Scaled web] 5. ui-router $stateParams for sharing information
2014-11-09 [Big Data] Week 5 A (Advance)
2014-11-09 [AngularJS] Angular 1.3 $submitted for Form in Angular
点击右上角即可分享
微信分享提示