Angularjs: то же состояние и URL для редактирования и добавления страницы - PullRequest
0 голосов
/ 26 ноября 2018

Я хочу использовать одно и то же состояние для редактирования и добавления страницы.Вот как выглядит мое состояние

 .state('editProduct', {
url: "/editProduct/:productId",
data: {title: "Edit product"},
templateUrl: 'views/package/editProduct.html',
controller: 'editProductCtrl',
controllerAs: 'editProduct'
});

Теперь в моем контроллере я хочу проверить, когда я получаю stateParam "packageId", я получаю логическую переменную isEditMode = true, иначе я хочу установить ее isEditMode = false.

Теперь, когда мой режим редактирования имеет значение true, я позволю пользователю редактировать продукт с предварительно заполненными данными.

Когда editMode имеет значение false, я хочу показать пустую форму продукта, где пользователь может создать новый продукт..

Причина такого подхода: я хочу повторно использовать страницу HTML для редактирования и добавления продукта

Проблемы, с которыми сталкиваются: Я могудля доступа / редактирования продукта / 1, но я не могу получить доступ к / редактировать продукт, я перенаправлен на маршрут по умолчанию

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Вам нужно сделать ваш параметр необязательным, попробуйте добавить его в определение состояния, если вы используете ui-router версия 1.x:

params: {
   productId: null
}
0 голосов
/ 26 ноября 2018

Вы используете pathParam, который является обязательным ("/: productId").Если вы хотите, чтобы это было опционально, вы должны использовать queryParam:

url: "/editProduct?productId",
...