我使用按钮来附加到输入元素的值。尽管更新了模型变量,但输入值保持不变。怎么修呢?
<input type="text"
class="form-control"
id="inputSecurityCode"
style="width: 100%"
placeholder="4 digits"
name="inputSecurityCode"
ng-model="reservation.securityCode"
ng-pattern="patterns.securityCode"
ng-focus="focused('inputSecurityCode')"
ng-blur="blurred('inputSecurityCode')"
/>
<button type="button" ng-click="numButtonClick(1)">1</button>
AngularJS
$scope.reservation = {
securityCode: undefined
};
$scope.numButtonClick = function(num){
switch($scope.focusedInput){
case 'inputSecurityCode':
$scope.reservation.securityCode += num;
break;
}
};
$scope.patterns = {
securityCode : /^[0-9]{4}$/
};
更新
这可能是因为起始值是undefined
,NaN
,当尝试NaN加整数时,返回的是NaN,不能添加到输入中。应该是null
而不是undefined
吗
更新2
所有undefined
都已更改为null
,但所观察到的行为是相同的。
更新3
我发现当我删除ng-pattern="patterns.securityCode"
时,一切都很好。怎么会这样?
发布于 2014-11-26 05:24:07
编辑:这似乎不是OP的问题,可能是不正确的信息。
这是因为对象的原语属性的更改不会由AngularJS自动传播。
像这样手动重新应用绑定:
$scope.numButtonClick = function(num){
switch($scope.focusedInput){
case 'inputSecurityCode':
$scope.$apply(function(){
$scope.reservation.securityCode += num;
});
break;
}
};
https://stackoverflow.com/questions/27150268
复制相似问题