Какой самый подходящий способ обратиться к нескольким (не вложенным) динамически генерируемым состояниям URL в большом одностраничном приложении - PullRequest
2 голосов
/ 25 июня 2019

Я продолжаю работать над большим одностраничным приложением для просмотра результатов из нашей базы данных. Существует всего 10 различных вариантов выбора, из которых можно выбрать, прежде чем нажать кнопку поиска. Он был встроен в codeigniter / angular, поэтому, естественно, он использует Ajax для извлечения всех данных.

Теперь мой босс решил, что он хочет добавить «общие» URL-адреса, как в старой системе (она использует параметры получения), и мне сказали, что angular-ui-router - это способ обработки URL-адресов в больших одностраничных веб-приложениях. У меня есть некоторый написанный код, который в настоящее время заменяет состояние URL-адреса в адресной строке, когда выбран параметр раскрывающегося списка, и он работает, но поскольку он не использует вложенные состояния, он просто переопределяет его, когда выбирается другой. Прежде чем я пойду по дороге из 10 глубинных вложенных состояний, будет ли решение добавить следующую часть URL-адреса в существующую без переопределения?

app.config(function($stateProvider) {
    $stateProvider
        .state('stateone', {
            url: '/:key/:value',
        });
     });

$scope.changedValue=function(key, value){
    console.log("Key:"+key+" Value:"+value);
    $state.go('stateone', {
        key: key,
        value: value
    });
}

<select ng-model="excess_state.value" ng-change="changedValue('excess', excess_state.value)">
    <option ng-repeat="state in excess_state" value="{{state.value}}">
    </option>
</select>

для уточнения: если в раскрывающемся списке «избыток» выбрана опция «да», URL-адрес будет следующим: индекс / избыток / да /

Когда в следующем раскрывающемся списке «Инвентарь» выбрана опция «3», URL должен стать следующим: Индекс / превышение / да / инвентарь / 3 /

сейчас он просто переопределяет на индекс / инвентарь / 3 /

, так как этот код должен изменять только параметр ng-selected, когда он вызывается из URL-адреса, само состояние не служит большей части цели, кроме стандартного параметра get.

Надеюсь, я прояснил себя достаточно, любые предложения будут с благодарностью!

...