gpt4 book ai didi

javascript - 强制更新 Angular 2 中的属性绑定(bind)

转载 作者:行者123 更新时间:2023-11-29 19:15:21 24 4
gpt4 key购买 nike

考虑以下组件

import {Component} from 'angular2/core'

@Component({
selector: 'my-app',
providers: [],
template: `
<div>
<h3>Input with two decimals</h3>
<input type="text"
[value]="formattedN"
(change)="nChanged($event.target.value)"/>
</div>
`,
directives: []
})
export class App {

private n: number = 0;
private formattedN: string = "0.00"

public nChanged(value) {
this.n = parseFloat(value);
this.formattedN = this.n.toFixed(2);
}

}

输入应始终为带两位小数的数字。然而,情况并非总是如此。尝试删除最后一个零,该字段不会更改为我想要的 0.00。我知道它不起作用,因为 formattedN 值未更新,这意味着属性绑定(bind)未更新,因此输入的值未更新。

在 plunker 中运行示例:http://plnkr.co/edit/Vyi4RKladslrdZslZQhm

有没有人对这个问题有很好的解决方案?

最佳答案

这是 Answer 你想要完成什么????

//our root app component
import {Component} from 'angular2/core'

@Component({
selector: 'my-app',
providers: [],
template: `
<div>
<input type="text" [(ngModel)]="formattedN" (change)="nChanged($event.target.value)"/>
</div>
`,
directives: []
})
export class App {

private n: number = 0;
private formattedN: string = "0.00"

constructor() {
this.name = 'Angular2'
}

public nChanged(value) {
console.log(value);
this.n = parseFloat(value);
console.log(this.n);
this.formattedN = this.n.toFixed(2)
console.log(this.formattedN);
}
}

关于javascript - 强制更新 Angular 2 中的属性绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35819717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com