小编Yog*_*esh的帖子

(ngModelChange)不会为特定输入更新UI

我有一个输入字段,用户可以在其中输入事物的速率。

当用户输入值时,我希望将其四舍五入后再显示,然后将更新后的值存储在ts文件的后备模型中。

使用Angular管道不利于此,因为一个方向的管道和更新后的值不会反映在模型上。

因此,为了使其双向,我正在执行以下操作:

<input type="text" [ngModel]="model.rate" (ngModelChange)="model.rate=roundRate($event)" name="rate" />
Run Code Online (Sandbox Code Playgroud)

roundDate功能看起来像这样

roundRate(value) {
    return Math.round(value);
}
Run Code Online (Sandbox Code Playgroud)

现在,当我输入5.6、7.8、9.5等值时,它们都被四舍五入,显示并分别在模型上存储为6、8和10,这是预期的行为。

当我输入2.1、3.4、5.3等时,问题开始。在这种情况下,该roundRate函数被调用,并在四舍五入后返回值。但是屏幕上显示的值仍然是旧值(2.1、3.4、5.3)

我检查了inputChrome上的元素,发现该ng-reflect-model属性已更新为预期值(2、3、5)。

<input _ngcontent-c39="" name="rate" type="text" ng-reflect-name="rate" ng-reflect-model="5" class="ng-valid ng-dirty ng-touched">
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下这里发生了什么吗,尽管ng-reflect-model属性已更新,但为什么屏幕仍显示旧值?

谢谢你的帮助!

angular2-ngmodel angular

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

ES6 箭头函数的 return 语句中括号周围的括号有什么作用?

例如在 redux 操作中,我在某人的代码中看到过:

export const updateMessage = text => {
   return (dispatch) => {
     dispatch(updateChatMessage(text))
   }
}
Run Code Online (Sandbox Code Playgroud)

和:

const updateChatMessage = text => ({
   type: types.someActionType,
   text
})
Run Code Online (Sandbox Code Playgroud)

它似乎起到了暗示的作用 return但我认为这已经暗示在胖箭头后面的箭头函数括号中。

括号有({...})什么作用?他们有必要吗?有没有其他方法可以完成同样的事情?

javascript ecmascript-6 arrow-functions

3
推荐指数
1
解决办法
597
查看次数