我想对编辑和添加页面使用相同的状态。 这是我的状态
.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,我被重定向到默认路由
答案 0 :(得分:2)
您正在使用pathParam,它是必填的(“ /:productId”)。 如果希望它是可选的,则应使用queryParam:
url: "/editProduct?productId",
答案 1 :(得分:0)
您需要将参数设为可选,如果使用的是ui-router
1.x版,请尝试将其添加到状态定义中:
params: {
productId: null
}