以下代码仅在输入类型为文本时有效,并且在类型为数字时不起作用。
<div ng-app="myApp" ng-controller="myCtrl as model">
<input type="text" ng-model="cero" ng-decimal >
</div>
angular
.module("myApp",[])
.controller('myCtrl', function($scope){
var model=this;
})
.directive('ngDecimal', function ($parse) {
var linkFunction =function(scope, element, attrs){
element.bind("keypress", function(event) {
if(event.which === 13) {
scope.$apply(function(){
scope.$eval(attrs.format, {'event': event});
if(scope.cero===undefined || scope.cero===''){
scope.cero="0.",
event.preventDefault();
}else{
}
});
}
});
};
return{
restrict : 'A',
scope:{
cero: '=ngModel'
},
link: linkFunction
}
});
我需要帮助的是将类型更改为数字并仍然使代码工作。代码也在CodePen。
答案 0 :(得分:1)
答案 1 :(得分:1)
更新了笔:http://codepen.io/anon/pen/QKOVkP?editors=1011
使用数字,您无法指定约束
scope.cero = "0." // string value
到type="number"
所以用你想要分配的最小数字替换它,也许
scope.cero = parseFloat("0.01") // parseFloat("0.") won't work