Come analizzare in Angular.js

Probabilmente, è la cosa più semplice, ma non ho potuto analizzare una stringa per Int in angular ..

Quello che sto cercando di fare:

  Total: {{num1 + num2}} 

Come posso sumre questi valori num1 e num2?

Thnx!

Non è ansible (almeno al momento) utilizzare parseInt all’interno di espressioni angolari, poiché non vengono valutate direttamente. Citando il documento :

Angular non utilizza l’ eval() di JavaScript per valutare le espressioni. Invece il servizio $parse Angular elabora queste espressioni.

Le espressioni angolari non hanno accesso a variabili globali come window , document o location . Questa restrizione è intenzionale. Impedisce l’accesso accidentale allo stato globale – una fonte comune di bug sottili.

Quindi puoi definire un metodo total() nel tuo controller, quindi usarlo nell’espressione:

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

Tuttavia, sembra essere piuttosto ingombrante per un’operazione così semplice come aggiungere i numeri. L’alternativa è la conversione dei risultati con -0 op:

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

… ma ovviamente non analizzerà i valoriInt , li trasmetterà solo a Numbers (il filtro |number impedisce di mostrare null se questo cast risulta in NaN ). Quindi scegli l’approccio adatto al tuo caso particolare.

Opzione 1 (tramite controller):

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

Opzione 2 (tramite filtro personalizzato):

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

Opzione 3 (tramite espressione):

Dichiaralo per primo nel tuo controller:

 $scope.parseInt = parseInt; 

Poi:

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

Opzione 4 (da raina77ow)

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

e in js:

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

Esegui l’operazione all’interno dell’ambito stesso.

    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); }]); 

Demo: parseInt con AngularJS

Questo è il modo per associare aggiungere troppi numeri

        Total:{{num1+num2}} Total: {{total() }}