AngularJS |Перенаправление на newItem после обновления существующего - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть приложение AngularJS, которое на одной странице имеет функцию обновления.Каждый раз, когда мы обновляем имя элемента, создается новый элемент с новым именем.В настоящее время мы обновляем и перенаправляем на предыдущий элемент.Я хочу перенаправить на новый.

Вот код, который у меня есть.Частично работает.В моем контроллере:

  $scope.updateItemConfig = function(configs) {
    configs = _.isString(configs) ? JSON.parse(configs) : configs;
    $scope.editorConfigs.readOnly = false;
    $scope.newItemName = "";

    if (!$scope.item.itemInfo.name) {
      $scope.newItemName = $scope.item.itemInfo.name;
      ItemAPI.updateItem(newItemName, configs).then(function(res) {
        $scope.item= {};
        getItem(newItemName);
        $location.path(
          `item/${$scope.itemParentComponent}/${$scope.newItemName}`
        );
      });
    } else {
      ItemAPI.updateItem(configs["name"], configs).then(function(res) {
        $scope.item= {};
        getItem(configs["name"]);    $location.path(`item/${$scope.itemParentComponent}/${$scope.itemName}`);
      });
    }
  };

В моем HTML:

    <button
      ng-show="!editorConfigs.readOnly"
      permission="[roles.write]"
      ng-disabled="errors.length > 0"
      ng-click="updateItemConfig(item.userConfigs);"
      class="btn btn-sm btn-default float-right mt15"
    >
      <i class="fa fa-floppy-o" aria-hidden="true"></i> Update Config
    </button>

У меня есть некоторый излишек для обработки состояния.Единственное, что я с ним делаю, это данные о состоянии загрузкиПо сути, я хочу перенаправить на newItem в URL-адресе, подобном следующему: itemParentComponent/newItemName вместо itemParentComponent/itemName, что и происходит сейчас.Может кто-нибудь помочь ??

Обновление Это часть контроллера, где я сопоставляю состояние с контроллером:

  function mapStateToController(state) {
    return {
      user: state.auth.user,
      config: state.session.config,
      supportedItems: state.items.supportedItems,
      selectedItemParentComponent: state.connectors.selectedItemParentComponent,
      selectedItem: state.items.selectedItem,
      selectedItemMetrics: state.items.selectedItemMetrics,
      selectedItemMetricsGrouped: _.groupBy(
        state.item.selectedItemMetrics,
        "itemTask"
      ),
      selectedItemInfo: state.items.selectedItemInfo,
      ConfigInfo: state.config.configInfo
    };
  }
  /**
   * Redux Action mapping
   */
  const MappedActions = {
    ...ItemActions,
    ...ConfigActions
  };

Я могу показать вам больше, если вы хотите,Но в основном у нас есть selectedItemInfo, возвращающий следующую схему:

name: '',
description: '',
count: number
...rest

Итак, я хочу сделать так, чтобы в случае изменения имени получить значение newName и сделать мойоператор if-else работает.Либо оставайтесь в текущем, если имя не изменилось, либо переходите к новому, если свойство имени изменилось.

...