如何在一个Angularexpression式中将stringparsing为Int?
数字串“5”
var num_str = '5';
我怎样才能parseInt并让下面的答案同时正确?
{{num_str + 1}} // 6 {{num_str - 1}} // 4
parseInt不能用在Angularexpression式中,
{{parseInt(num_str) - 1}}
数字filter不能做加减,
{{num_str - 1 | number}}
如果有人提出有用的build议,我将非常感谢你
在你的控制器中:
$scope.num_str = parseInt(num_str, 10); // parseInt with radix
我更喜欢使用angular度filter。
app.filter('num', function() { return function(input) { return parseInt(input, 10); }; });
那么你可以在dom中使用这个:
{{'10'|num}}
这是一个小提琴 。
希望这有助于!
另一种select是:
$scope.parseInt = parseInt;
那么你可以像你想的那样做这个:
{{parseInt(num_str)-1}}
这是因为angular度expression式不能访问window
,只能访问scope
。
另外,使用数字filter,将括号内的expression式包装起来:
{{(num_str-1) | number}}
DEMO
以上都没有为我工作。
但是这样做了:
{{ (num1_str * 1) + (num2_str * 1) }}
{{ num_str - 0 }}
…为我工作。
你可以使用javascript的数字方法来parsing它的一个数字,
var num=Number (num_str);
除了{{1 * num_str + 1}}你也可以尝试像这样(减去第一个):
{{ num_str - 0 + 1}}
但是它非常脆弱,如果num_str包含字母,那么它将会失败。 所以最好应该尝试用@hassassin说的写一个filter,或者在启动之后立即对数据进行预处理。
我尝试了上面提到的解决scheme,没有一个为我工作。 我用JSON.parse,它的工作原理:
$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); });