2016-02-23 3 views
1

Я использую ui-router для получения значения параметра из url с помощью $stateParam. Один из параметров - это номер идентификатора, который может начинаться или не начинаться с 00. Например, 0034323343. Во всем этом приложении ведущие нули не повреждены. Тем не менее, есть один случай, когда я добавляю состояние к объекту, как это:Почему Javascript удалял ведущие нули из строки?

SharedDataService.setBreadcrumb({ 
       state: 'notes({ claimID: ' + $stateParams.claimID + ', cardholderId: ' + $stateParams.cardholderId + ' })', 
       name: 'Notes' 
      }); 

По какой-то причине, ведущий нуль удаляется. Идентификатор становится 34323343 в URL. Я проверил typeof($stateParams.cardholderId), который возвращает string. Итак, почему нулевой отсутствует?

Это объект, который сохранен.

Object {state: "notes({ claimID: 187337, cardholderId: 0034323343 })", name: "Notes"} 

, который я распечатал на консоли, когда это значение установлено. Посмотрите, как состояние имеет cardholderId in правильный формат - с ведущими нулями? Теперь, почему это меняется на int, когда я показываю его внутри div. {{ crumb.state }} ??

+2

потому что у вас, вероятно, есть число, а не строка, а числа не имеют начальных и конечных нулей. Где он установлен? – epascarello

+0

Что заполняет $ stateParams.carholderId? Если это строка, когда вы попадаете сюда, она, должно быть, была номером в другом месте. –

+1

$ stateParams.cardholderId будет строкой на этом этапе да, но cardholderId, вероятно, был int в точке, где вы передаете значение, чтобы вызвать изменение маршрута (обычно href или ui-sref). – andyhasit

ответ

2

Вы должны приложить переменные ", чтобы сохранить их как строку в строковом объекте.

'notes({ claimID: "' + $stateParams.claimID + '", cardholderId: "' + $stateParams.cardholderId + '" })' 
+0

Это уже прилагается. – user1828605

+0

Я понял сразу после того, как прокомментировал. Извините. – user1828605

Смежные вопросы