Angular 2通过输入更改类中的变量

时间:2017-06-28 10:47:44

标签: angular input

我需要一些帮助,通过文本输入在类中设置变量,

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="pageimage"></div>

有一个示例类,它修改变量,那么当我只想在输入发生变化时修改变量时,输入应该如何?

3 个答案:

答案 0 :(得分:2)

在这种情况下你必须使用 ngOnChange 事件,如下所示。因此,只要输入变量myVar值发生变化,它就会调用ngOnChanges事件

@Input() myVar:any;

ngOnChanges(changes: any) {
    if (changes.myVar != null && changes.myVar.currentValue != null) {
       //your logic to update any variable or other....
    }
}

答案 1 :(得分:1)

您可以使用双向数据绑定。

示例:

<input [(ngModel)]="property">

<p>{{property}}</p>

看看here

如果要调用代码中的函数,请使用:

<input (input)="nameChange($event.target.value)">

答案 2 :(得分:1)

您可以使用setter拦截输入属性更改,请尝试以下操作:

// component:

@Component({
    selector: 'my-component',
    template: '<h3> My component </h3>'
})

export class MyComponent {
    @Input()
    set name(str: string) {
        this.service.setName(str);
        console.log(str);
    }
}

//使用组件的HTML:

<my-component [name]="Bombasto"></my-component>