0

我想对编辑和添加页面使用相同的状态。这是我的状态的样子

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

现在在我的控制器中,我想检查当我得到 stateParam“packageId”时得到布尔变量 isEditMode = true,否则我想将它设置为 isEditMode = false。

现在,当我的 editMode 为 true 时,我将允许用户使用预填充的详细信息编辑产品。

当 editMode 为 false 时,我想显示一个空白产品表单,用户可以在其中创建新产品。

采用这种方法的原因:我想重新使用 HTML 页面来编辑和添加产品

面临的问题: 我可以访问 /editProduct/1 但我无法访问 /editProduct,我被重定向到默认路由

4

2 回答 2

2

您使用的 pathParam 是强制性的(“/:productId”)。如果您希望它是可选的,您应该使用 queryParam :

url: "/editProduct?productId",
于 2018-11-26T12:58:42.573 回答
0

您需要使您的参数可选,如果您使用的是ui-router1.x 版,请尝试将其添加到您的状态定义中:

params: {
   productId: null
}
于 2018-11-26T12:59:40.477 回答