我有以下输入
<input style="margin-left:24px;" id="numOfRows" class="setupInput" size="10"
ng-model="rowVal" ng-init="rowVal = gameCtrl.getNumOfRows()" ng-change="gameCtrl.setNumOfRows({{rowVal}})">
我遇到的问题是当我更改框中的值时,它总是落后1。
EX:当前值= 6
为什么落后1更新?
答案 0 :(得分:4)
您可能会遇到以下几个问题:
1)不要在ng-change表达式中使用插值({{}}
)。
即改变
ng-change="gameCtrl.setNumOfRows({{rowVal}})"
到
ng-change="gameCtrl.setNumOfRows(rowVal)"
2)不要使用ng-init进行初始化,即控制器的用途,使用控制器初始化rowVal
的值。
3)确保您没有与ng-change / ng-model同步问题有关的旧版角度。
4)假设您正在使用控制器As语法(并且之前的语句错误),请始终尝试将属性绑定到控制器实例,即使用gameCtrl.rowVal
。 (这可能是错误的,因为从问题的上下文中不清楚它是否真的应属于控制器实例,还是在ng-repeat内部或创建子范围的内容)。