【发布时间】:2013-09-10 10:32:31
【问题描述】:
例如,我正在尝试获取和更新带有两位小数的数据(浮点数)。我有一个允许用户输入浮点数的文本框,我使用一个指令转换为 2 个小数位:
<input type="text" ng-model="data" name="data" smart-float />
app.directive('smartFloat', function() {
return {
require: 'ngModel',
link: function(scope, elm, attrs, ctrl) {
ctrl.$parsers.unshift(function(viewValue) {
var FLOAT_REGEXP = /^\-?\d+(\.\d+)?$/;
if (FLOAT_REGEXP.test(viewValue)) {
ctrl.$setValidity('float', true);
return parseFloat(Math.round(viewValue * 100) / 100).toFixed(2);
} else {
ctrl.$setValidity('float', false);
return undefined;
}
});
}
};
});
这个指令可以在模型上得到 2 个小数位,当用户点击 check 按钮时,我想更新回文本框,例如:
如果用户在文本框中输入1.345,然后单击检查按钮,值1.35 应该会更新回文本框:
有什么办法吗?
我尝试使用$scope.$digest() 在checkFn 中触发$digest 循环,但没有成功。
【问题讨论】:
标签: javascript angularjs