输入type = "number"时,Angular指令不能工作
angular directive does not work with input type = "number"
以下代码仅在输入类型为文本时有效,当输入类型为数字时不起作用
<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上。
更新笔:http://codepen.io/anon/pen/QKOVkP?editors=1011
与number一起工作,限制是不能赋值
scope.cero = "0." // string value
到type="number"
,所以用你想要分配的最小数字替换它,可能是
scope.cero = parseFloat("0.01") // parseFloat("0.") won't work
在else条件中加上这个
scope.cero = parseFloat(scope.cero).toFixed(2);
将字符串转换为十进制
下面是代码:working code相关文章:
- Angular JS IE9 Hashbang url rewriting
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- Angular promise return"未定义的“;值.NET MVC
- "要求“;Angular指令的DDO选项在应该抛出错误时不会抛出错误
- "TypeError:无法调用方法'匹配'未定义的“;Angular JS指令中的Morris
- "粘贴“;Angular[ngPaste]中的事件
- "类型错误:对象没有´t支持这个未定义的动作“;Angular应用程序IE8中的错误
- "粘性“;在Angular应用程序中选择
- "重新发送“;Angular$http请求
- Angular为什么说“;未捕获的ReferenceError:$scope未定义"
- 这个AngularJS是如何工作的;HelloWorld"应用有些人怀疑Angular是如何实现MVC模式的
- "控制器污染全局命名空间“;它在Angular中意味着什么
- angular ui路由器的第一个状态具有“名称:”"`
- JS-angular为什么使用“ng click=”;f()"`属性,而不是`$(el).on('cl
- Angular JS中的DOM查询$(“.myclass") . each()的选择
- "完美滚动条”;(jQuery插件)不是't在其容器中填充Angular.js时正确初始化
- Angular JS&TypeScript-错误:ng:areq错误参数"自变量'XXXXXX
- "scope.watch不是一个函数“;Angular.js中的错误
- Angular 2 with protractorjs Failed:在等待Protractor与page "窗