У меня есть приложение 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 работает.Либо оставайтесь в текущем, если имя не изменилось, либо переходите к новому, если свойство имени изменилось.