Javascript 使用AngularJS比较文本字段中的数字

Javascript 使用AngularJS比较文本字段中的数字,javascript,angularjs,Javascript,Angularjs,控制器: angular.module('myApp', []) .controller('MainCtrl', function($scope) { $scope.d = { v1: '100', v2: '20' }; }); angular.module('myApp', []) .controller('MainCtrl', function($scope) { $scope.d = { v1: '100', v2: '20' }

控制器:

angular.module('myApp', [])
    .controller('MainCtrl', function($scope) {
        $scope.d = { v1: '100', v2: '20' };
    });
angular.module('myApp', [])
    .controller('MainCtrl', function($scope) {
        $scope.d = { v1: '100', v2: '20' };
        $scope.eval = function() {
           return (parseInt($scope.d.v1, 10) < parseInt($scope.d.v2, 10));
        }
    });
模板:

<div ng-app="myApp">
  <div ng-controller="MainCtrl">
      1: <input type="text" ng-model="d.v1" />
      2: <input type="text" ng-model="d.v2" />
      <h4>{{d.v1}} &lt; {{d.v2}} = {{d.v1 < d.v2}}</h4>
  </div>
</div>
<div ng-app="myApp">
  <div ng-controller="MainCtrl">
      1: <input type="text" ng-model="d.v1" />
      2: <input type="text" ng-model="d.v2" />
      <h4>{{d.v1}} &lt; {{d.v2}} = {{eval()}}</h4>
  </div>
</div>

1: 
2: 
{{d.v1}}{{d.v2}}={{d.v1


此示例错误地显示100小于20。有什么建议可以让这个比较变成数字吗?

变量的类型是“文本”,您必须将它改为“数字”才能得到正确的结果。

您所需要的只是比较数字而不是字符串。

以下是工作片段:

angular.module('myApp',[])
.controller('MainCtrl',函数($scope){
$scope.d={v1:100,v2:20};
});

1: 
2: 
{{d.v1}}{{d.v2}}={{d.v1
试试这个,我刚刚添加了一个Eval函数,其他的都没变

控制器:

angular.module('myApp', [])
    .controller('MainCtrl', function($scope) {
        $scope.d = { v1: '100', v2: '20' };
    });
angular.module('myApp', [])
    .controller('MainCtrl', function($scope) {
        $scope.d = { v1: '100', v2: '20' };
        $scope.eval = function() {
           return (parseInt($scope.d.v1, 10) < parseInt($scope.d.v2, 10));
        }
    });
angular.module('myApp',[])
.controller('MainCtrl',函数($scope){
$scope.d={v1:'100',v2:'20'};
$scope.eval=函数(){
返回(parseInt($scope.d.v1,10)
模板:

<div ng-app="myApp">
  <div ng-controller="MainCtrl">
      1: <input type="text" ng-model="d.v1" />
      2: <input type="text" ng-model="d.v2" />
      <h4>{{d.v1}} &lt; {{d.v2}} = {{d.v1 < d.v2}}</h4>
  </div>
</div>
<div ng-app="myApp">
  <div ng-controller="MainCtrl">
      1: <input type="text" ng-model="d.v1" />
      2: <input type="text" ng-model="d.v2" />
      <h4>{{d.v1}} &lt; {{d.v2}} = {{eval()}}</h4>
  </div>
</div>

1: 
2: 
{{d.v1}}{{d.v2}}={{eval()}

因为它们是
字符串
而不是
数字
,所以在比较Make
type=“number”
@Jag之前需要进行转换。请尝试在输入中输入一些数字,它们将再次成为字符串类型