{{person | json }}
name:
pts:
http://codepen.io/anon/pen/dPKgVL
但是当我在1.3中使用它时,我得到错误:[ngModel:numfmt]但是当我更新数字时,它似乎仍然绑定到范围.
http://codepen.io/anon/pen/YPvJro
我在这里做错了什么或者这没什么好担心的?当我尝试调试其他问题时,我宁愿不在控制台中出现错误
1> KyleM..:
添加此项以解决问题:
myApp.directive('input', [function() {
return {
restrict: 'E',
require: '?ngModel',
link: function(scope, element, attrs, ngModel) {
if (
'undefined' !== typeof attrs.type
&& 'number' === attrs.type
&& ngModel
) {
ngModel.$formatters.push(function(modelValue) {
return Number(modelValue);
});
ngModel.$parsers.push(function(viewValue) {
return Number(viewValue);
});
}
}
}
}]);
如果你没有完全控制你的JSON模型,这很方便(例如,我也必须支持该属性中的字符串,因此将其更改为整数类型对我来说不起作用).
2> net.uk.sweet..:
将pts
属性定义为number
而不是string
:
var app = angular.module('app', []);
app.controller('MainCtrl', ['$scope', function ($scope) {
$scope.person = [
{"name": "Alex","pts": 10}
];
}]);
3> chrmcpn..:
该指令将为任何类型为"number"的输入解析字符串值.那你就不会有错误:
module.directive('input', function(){
return {
require: 'ngModel',
link: function(scope, elem, attrs, ngModel){
if(attrs.type == 'number'){
ngModel.$formatters.push(function(value){
return parseFloat(value);
});
}
}
};
});