在数字字段AngularJS中显示值的问题

在数字字段AngularJS中显示值的问题,angularjs,angular-ngmodel,ng-bind,Angularjs,Angular Ngmodel,Ng Bind,我试图在数值输入字段中绑定来自控制器的字符串类型的值,如下所示: 由于detail.Value的类型为string,因此不会显示I值(我猜) 我无法将Value属性的类型更改为int。 如何在视图中显示数字框中的值?用parseFloat将其包装: detail.Value = parseFloat(detail.Value); 演示用parseFloat包装它: detail.Value = parseFloat(detail.Value); 演示您可以将该值传递给控制器上进行解析(

我试图在
数值输入
字段中绑定来自
控制器
字符串类型的值,如下所示:

由于
detail.Value
的类型为
string
,因此不会显示I值(我猜)

我无法将Value属性的类型更改为int。


如何在视图中显示数字框中的值?

parseFloat
将其包装:

 detail.Value = parseFloat(detail.Value);

演示

parseFloat
包装它:

 detail.Value = parseFloat(detail.Value);

演示

您可以将该值传递给控制器上进行解析(并分配给模型)的方法,或者如果您确实想在HTML中这样做,您可以将解析方法分配给控制器中的作用域(
$scope.parseFloat=parseFloat;
),然后在
ng init
中进行解析。类似于这样:
ng init=“value=parseFloat(detail.value)”
然后
ng model=“value”

您可以将该值传递给将进行解析(并分配给模型)的控制器上的方法,或者如果您确实希望在HTML中这样做,则可以将解析方法分配给控制器中的作用域(
$scope.parseFloat=parseFloat;
)然后在
ng init
中进行解析。类似于这样:
ng init=“value=parseFloat(detail.value)”
然后
ng model=“value”


你可以试试这样的



您可以尝试这样的方法,这里有一个小指令,用于强制模型值为数字

函数forceNumber($parse){
返回{
限制:“A”,
要求:'ngModel',
链接:函数(范围、元素、属性、ctrl){
var getter=$parse(attrs.ngModel);
var setter=getter.assign;
var remListner=attrs.$observe('ngModel',函数(val){
var值=getter(范围);
如果(值的类型!=='number'){
设置器(范围+值);
}
//移除listner,无需继续观看!
remListner();
});
}
};

}
这里有一个小指令,用于强制将模型值设置为数字

函数forceNumber($parse){
返回{
限制:“A”,
要求:'ngModel',
链接:函数(范围、元素、属性、ctrl){
var getter=$parse(attrs.ngModel);
var setter=getter.assign;
var remListner=attrs.$observe('ngModel',函数(val){
var值=getter(范围);
如果(值的类型!=='number'){
设置器(范围+值);
}
//移除listner,无需继续观看!
remListner();
});
}
};


}
这些数据是否来自db?是的,我将它们保存到$scope变量中,并在@KalhanoToressPamuditha处显示它们。我将值作为JSON对象获取并分配。确切地说,我返回了一个对象列表。我也遇到了这个问题。我所做的是将db列数据类型更改为整数、双精度或一些数字类型e、 @KalhanoToressPamuditha在我的情况下,我不能这样做,这是悲哀的部分。这些数据来自db吗?是的,我将它们保存到$scope变量中,并显示它们@KalhanoToressPamuditha我将这些值作为JSON对象获取并分配。确切地说,我返回了一个objecti列表。我也遇到了这个问题。我所做的是更改db列数据类型为整数、双精度或某些数字类型。@KalhanoToressPamuditha在我的情况下,我不能这样做,这是悲哀的part@RandomUser你是说在HTML中吗?@RandomUser答案是否定的,你不能使用带有函数的
ng model
。但我建议你无论如何在控制器中使用它。不是大刻度。@mMaximShoustin in in the fiddle i'm无法在数字框中看到
123
。那么,它应该可以在Chrome、firefox、IE和Safari@RandomUser你的意思是HTML吗?@RandomUser答案是否定的,你不能使用带有函数的
ng模型。但我建议你无论如何在控制器中使用它。不是大刻度。@mMaximShoustin在小提琴中我看不到
123
在数字框中,它应该在Chrome、firefox、IE和SafariSorry中工作,忘记保存plunk:)现在完成,并更新了我的答案!对不起,忘了保存plunk:)现在完成,并更新了我的答案!
...success(data) {      // after getting the data from serverside
    var formData = data.formDataWithNumeric; // get the form data
    for (key in formData) {                  //iterate through the data
        var isNumericData = $scope.isNumeric(formData[key]);  // check data can be convert to a numeric
        if(isNumericData) {
            formData[key] = Number(formData[key]);  // reassign the numeric value instead of string value
        }
    }
}