html5输入类型="数字"不适用于ng-model =" selectedItem.price"在angularjs

时间:2016-02-13 05:28:11

标签: angularjs html5

为什么角度模型不适用于输入类型编号?但适用于输入类型文本。

这是我的代码

<input type="number" step="0.01" name="price" ng-model="selectedItem.price" autocomplete="off">

这里的解决方案..在我的数据库中,数据类型是十进制而不是字符串..但是angularjs在获取数据后使其成为字符串..所以我添加&#34; +&#34;再次将其转换为int。

$scope.selectedItem={ item_id:"", item_name:"",supplier:"",price:"",description:"" };

<input type="number" step="0.01" name="price" ng-model="+selectedItem.price" autocomplete="off">

3 个答案:

答案 0 :(得分:0)

检查此代码

<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Example - example-number-input-directive-production</title>
        <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script>
    </head>
    <body ng-app="numberExample">
        <script>
            angular.module('numberExample', [])
                    .controller('ExampleController', ['$scope', function($scope) {    
                    $scope.selectedItem = {
                        price: 2.5
                    };
                }]);
        </script>
        <form name="myForm" ng-controller="ExampleController">

            <input type="number" step="0.01" name="price" ng-model="selectedItem.price" autocomplete="off">   
            <tt>value = {{selectedItem.price}}</tt><br/>
        </form>
    </body>
</html>

答案 1 :(得分:0)

我想在 selectedItem.price 你传递字符串...你能检查ng-model的数据类型..如果你通过

  $scope.selectedItem={
    price="2" 
 };
像上面一样,它不会起作用。需要传递Integer值。如下所示,它将起作用。

$scope.selectedItem={
 price:2;
}

将字符串转换为整数。

答案 2 :(得分:0)

我正在使用AngularJS(V1)我通过添加一个简单的过滤器为我自己解决了同样的问题:

filter('stringToNumber', function(){
    return function (input) {
    if (!input)
        return null;

    return Number(input)
};
});

使用此:

price: stringToNumber(price);