Как я могу разобрать строку на Int в угловом выражении?



числовая строка '5'



var num_str = '5';


как я могу разобрать и пусть ниже ответы правильные в то же время?



{{num_str + 1}}  // 6
{{num_str - 1}} // 4


parseInt не может использоваться в угловом выражении,



{{parseInt(num_str) - 1}}    


числовой фильтр не может добавить и минус,



{{num_str - 1 | number}}


если у кого-то есть полезные предложения, я буду очень признателен вам

423   9  

9 ответов:

в вашем контроллере:

$scope.num_str = parseInt(num_str, 10);  // parseInt with radix

Я предпочитаю использовать угловой фильтр.

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

тогда вы можете использовать это в dom:

{{'10'|num}}

здесь скрипка.

надеюсь, что это помогло!

можно попробовать:

{{ 1 * num_str + 1 }}

http://jsfiddle.net/Z32fP/

другой вариант:

$scope.parseInt = parseInt;

тогда вы могли бы сделать это, как вы хотели:

{{parseInt(num_str)-1}}

это потому, что угловые выражения не имеют доступа к window, только в scope.

кроме того, с помощью числового фильтра, обертывание выражения в скобках работает:

{{(num_str-1) | number}}

демо

{{ num_str - 0 }}

...работать на меня.

ни один из выше работал для меня.

но это так:

{{ (num1_str * 1) + (num2_str * 1) }}

вы можете использовать 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

    Ничего не найдено.