programing

파싱하는 방법Int in Angular.js

codeshow 2023. 10. 9. 23:40
반응형

파싱하는 방법Int in Angular.js

아마 가장 간단한 방법이겠지만 Int in angular로 문자열을 파싱할 수 없었습니다.

내가 하려는 일:

<input type="text" ng-model="num1">
<input type="text" ng-model="num2">

Total: {{num1 + num2}}

이 num1과 num2 값을 어떻게 합칠 수 있습니까?

고마워요!

(적어도 지금은) 사용할 수 없습니다.parseInt각진 표현들을 직접 평가하지 않기 때문에.문서 인용:

Angular는 자바스크립트의 것을 사용하지 않습니다.eval()표현을 평가합니다.대신 앵귤러즈$parseservice는 이러한 식을 처리합니다.

각도식은 다음과 같은 전역 변수에 접근할 수 없습니다.window,document아니면location. 이 제한은 의도적인 것입니다.미묘한 버그의 공통적인 원인인 글로벌 상태로의 우발적인 접근을 방지합니다.

그래서 당신은 a를 정의할 수 있습니다.total()method를 컨트롤러에 입력한 다음 다음 식을 사용합니다.

// ... somewhere in controller
$scope.total = function() { 
  return parseInt($scope.num1) + parseInt($scope.num2) 
}

// ... in HTML
Total: {{ total() }}

그래도 숫자를 더하는 간단한 작업을 하기에는 부피가 큰 것 같습니다.대안은 결과를 다음과 같이 변환하는 것입니다.-0op:

Total: {{num1-0 + (num2-0)|number}}

... 하지만 그건 분명히 이해할 수 없을 겁니다Int 값, 숫자에만 캐스트(|number필터 표시 안 함null이 배역이 결과적어도NaN특정한 경우에 적합한 접근법을 선택합니다.

옵션 1(컨트롤러 경유):

angular.controller('numCtrl', function($scope, $window) {
   $scope.num = parseInt(num , 10);
}

옵션 2(사용자 정의 필터를 통해):

app.filter('num', function() {
    return function(input) {
       return parseInt(input, 10);
    }
});

{{(num1 | num) + (num2 | num)}}

옵션 3(식을 통해):

컨트롤러에서 이 내용을 먼저 선언합니다.

$scope.parseInt = parseInt;

그러면:

{{parseInt(num1)+parseInt(num2)}}

옵션 4(rainea77ow부터)

{{(num1-0) + (num2-0)}}
<input type="number" string-to-number ng-model="num1">
<input type="number" string-to-number ng-model="num2">

Total: {{num1 + num2}}

js:

parseInt($scope.num1) + parseInt($scope.num2)

스코프 자체 내부에서 작업을 수행합니다.

<script>
angular.controller('MyCtrl', function($scope, $window) {
$scope.num1= 0;
$scope.num2= 1;


  $scope.total = $scope.num1 + $scope.num2;

 });
</script>
<input type="text" ng-model="num1">
<input type="text" ng-model="num2">

Total: {{total}}
var app = angular.module('myApp', [])

app.controller('MainCtrl', ['$scope', function($scope){
   $scope.num1 = 1;
   $scope.num2 = 1;
   $scope.total = parseInt($scope.num1 + $scope.num2);

}]);

데모: 구문 분석AngularJS가 있는 Int

숫자 추가를 바인딩하는 방법입니다.

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script>

var app = angular.module("myApp", []);

app.controller("myCtrl", function($scope) {
$scope.total = function() { 
  return parseInt($scope.num1) + parseInt($scope.num2) 
}
})
</script>
<body ng-app='myApp' ng-controller='myCtrl'>

<input type="number" ng-model="num1">
<input type="number" ng-model="num2">
Total:{{num1+num2}}

Total: {{total() }}


</body>
</html>

내부 템플릿이 잘 작동합니다.

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>

<div ng-app="">
<input ng-model="name" value="0">
<p>My first expression: {{ (name-0) + 5 }}</p>
</div>

</body>
</html>

언급URL : https://stackoverflow.com/questions/26293769/how-to-parseint-in-angular-js

반응형