Я использую 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 }}
??
потому что у вас, вероятно, есть число, а не строка, а числа не имеют начальных и конечных нулей. Где он установлен? – epascarello
Что заполняет $ stateParams.carholderId? Если это строка, когда вы попадаете сюда, она, должно быть, была номером в другом месте. –
$ stateParams.cardholderId будет строкой на этом этапе да, но cardholderId, вероятно, был int в точке, где вы передаете значение, чтобы вызвать изменение маршрута (обычно href или ui-sref). – andyhasit