Как я могу разобрать строку на Int в угловом выражении?
числовая строка '5'
var num_str = '5';
как я могу разобрать и пусть ниже ответы правильные в то же время?
{{num_str + 1}} // 6
{{num_str - 1}} // 4
parseInt не может использоваться в угловом выражении,
{{parseInt(num_str) - 1}}
числовой фильтр не может добавить и минус,
{{num_str - 1 | number}}
если у кого-то есть полезные предложения, я буду очень признателен вам
9 ответов:
Я предпочитаю использовать угловой фильтр.
app.filter('num', function() { return function(input) { return parseInt(input, 10); }; });тогда вы можете использовать это в dom:
{{'10'|num}}здесь скрипка.
надеюсь, что это помогло!
другой вариант:
$scope.parseInt = parseInt;тогда вы могли бы сделать это, как вы хотели:
{{parseInt(num_str)-1}}это потому, что угловые выражения не имеют доступа к
window, только вscope.кроме того, с помощью числового фильтра, обертывание выражения в скобках работает:
{{(num_str-1) | number}}
вы можете использовать javascript метод для разбора его на число,
var num=Number (num_str);
кроме того {{ 1 * num_str + 1}} Вы также можете попробовать вот так (минус первый):
{{ num_str - 0 + 1}}но он очень хрупкий, если num_str содержит буквы, то он потерпит неудачу. Поэтому лучше попробовать написать фильтр, как сказал @hassassin, или предварительно обработать данные сразу после его запуска.
Я пробовал решения, упомянутые выше, и ни один из них не работал для меня. Я использовал JSON.разбор и это сработало:
$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); });
Comments