Прежде чем задать свой вопрос, я знаю, что было много тем по этой теме, но ни одна из них на самом деле не имеет никакого отношения к моей проблеме.
в моем приложении angularJS я использую $ stateProvider для переключения состояний. Однако мои приложения требуют, чтобы я передавал параметры строки запроса, и я хотел сохранить их.
Вот как я это сделал
$rootScope.$state.go('defaultState', {id: 12});
и затем я делаю следующее
$stateProvider.state('defaultState', {
url: /test/?id,
params: { id: {value: ""} },
templateUrl: 'testTemplate.html'
});
Так что теперь, когда я переключаюсь в свое состояние, я вижу URL следующим образом
/test/?id=12
что я и хотел, отлично!
Однако, при условии, что существуют условия, когда я бы назвал $rootScope.$state.go('defaultState')
без передачи параметра. В этом случае я получу URL следующим образом
/test/?id=
Что странно! Я хотел добавить строку запроса параметра, только если мы обнаружим параметр!
Так что я пытаюсь сделать что-то вроде этого
$stateProvider.state('defaultState', {
url: id ? '/test/id?' : '/test/',
params: { id: {value: ""} }, ..
так что если пусто, мы выбираем второй URL, а не первый, но это не работает, и я получаю, что идентификатор не определен ..
Есть ли способ сделать то, что я пытаюсь сделать, не имея второго состояния и второго $ state.go () в зависимости от условия?
Могу ли я передать переменную внутри $ state.go ('', {}, ..) и проверить ее вместо проверки параметра для условия?
Спасибо