AngularJS修剪模型中的前导零,而视图/输入值仍保持不变?

时间:2015-01-13 06:33:56

标签: angularjs

对于具有类型编号的输入元素,当输入的数字具有前导零(例如&00; 0000123456')时,模型将更新为123456,而视图/输入仍保持不变0000123456。

但是,如果我从数字切换到文本,一切都按预期工作。我想有号码,因为它会显示移动设备的数字键盘。

<input type="number" ng-model="vm.orderid"/>
{{vm.orderid}}

PLUNKR

2 个答案:

答案 0 :(得分:5)

正如@Steve所说,我使用了一个自定义指令my-decimals,当输入失去焦点时,它会将视图值与模型匹配。

<input type="number" my-decimals ng-model="vm.orderid"/>

angular.directive('myDecimals', function() {
    return {
        require: 'ngModel',
        link: function(scope, elm, attrs, ctrl) {

            elm.blur(function() {
                var val = ctrl.$viewValue;
                ctrl.$setViewValue(val * 1);
                ctrl.$render();
            });
        }

    }
});

答案 1 :(得分:3)

你必须选择这个,
 使用: <input type = "tel">
它是为了这个目的而引入的。它是HTML5中的新输入类型之一。

<input type="text" pattern="[0-9]">
它会打开iPhone和Android手机上的数字键盘。你可以测试一下。我不是百分百肯定。