Une chaîne numérique '5'
var num_str = '5';
Comment puis-je analyser et laisser les réponses ci-dessous correctes en même temps?
{{num_str + 1}} // 6
{{num_str - 1}} // 4
parseInt ne peut pas être utilisé dans une expression Angular,
{{parseInt(num_str) - 1}}
filtre de nombre ne peut pas ajouter et moins,
{{num_str - 1 | number}}
Si quelqu'un a des suggestions utiles, j'apprécierai beaucoup de vous
Dans votre contrôleur:
$scope.num_str = parseInt(num_str, 10); // parseInt with radix
Je préfère utiliser un filtre angular.
app.filter('num', function() {
return function(input) {
return parseInt(input, 10);
};
});
alors vous pouvez utiliser ceci dans le dom:
{{'10'|num}}
Voici un violon .
J'espère que cela a aidé!
Une autre option serait:
$scope.parseInt = parseInt;
Ensuite, vous pouvez faire cela comme vous le souhaitiez:
{{parseInt(num_str)-1}}
En effet, les expressions angular n'ont pas accès à la variable window
, mais uniquement à scope
.
De plus, avec le filtre numérique, le fait de placer votre expression entre parenthèses fonctionne comme suit:
{{(num_str-1) | number}}
{{ num_str - 0 }}
...travaille pour moi.
Aucun de ce qui précède n'a fonctionné pour moi.
Mais cela a:
{{ (num1_str * 1) + (num2_str * 1) }}
Vous pouvez utiliser la méthode javascript Number pour l’analyser en un nombre,
var num=Number (num_str);
J'ai essayé les solutions mentionnées ci-dessus et aucune d'entre elles n'a fonctionné pour moi. J'ai utilisé JSON.parse et cela a fonctionné:
$http.get('/api/getAdPolling')
.success(function (data) {
console.log('success: ' + data.length);
if (JSON.stringify(data) != "not found") {
$scope.adPoll = JSON.parse(data);
}
})
.error(function (data) {
console.log('Error: ' + data);
});
Pas vraiment génial mais un bidouillage amusant: vous pouvez - au lieu de +
{{num_str -- 1 }}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app>
{{'1'--1}}
</div>
Outre {{1 * num_str + 1}}, vous pouvez également essayer comme ceci (moins en premier):
{{ num_str - 0 + 1}}
Mais si c’est très fragile, si num_str contient des lettres, il échouera. Il est donc préférable d’essayer d’écrire un filtre comme @hassassin, ou de prétraiter les données juste après les avoir initialisées.