Angular的子状态不会改变

angular child state is not changing

本文关键字:改变 状态 Angular      更新时间:2023-09-26
.state("board", {
    url:"/board/:type",
    templateUrl: "boardListPlain.jsp",
    controller: 'BoardController',
    controllerAs : 'board'
})
 .state("boardInsert", {
    url:"/board/:type/insert",
    templateUrl: "boardInsert.html"
})

在这个stateProvider/board/:type/insert显示/board//insert我知道这样做很荒谬。但我不知道如何处理":type"我试过子状态,但它似乎需要一些特定的命名视图。请给我推荐一些学习Angular基本技能的好地方。

基本上你应该声明两个状态,其中insert状态将是board状态的子状态,当你遵循嵌套状态时,你需要通过parentName.childName符号声明子状态。这里变成了board.insert

当你想调用单板状态时,你需要调用$state.go('board', {type: 'sometType'})

从锚你可以使用ui-sref="board({type: 'sometType'})",而创建你的url为/borad/sometType

当你想插入someType

时,同样的事情也会随之而来

如果你没有在params对象中传递type,那么很明显URL将导致/board//insert,对于这种事情,你可以使用状态的params选项定义默认值。

配置

.state("board", {
    url:"/board/:type",
    templateUrl: "boardListPlain.jsp",
    controller: 'BoardController',
    params: {
        type: {
            value: 'defaultType' //if you don't mention the type, defaultType will become default.
        }
    }
    controllerAs : 'board'
})
 .state("board.insert", {
    url:"/insert",
    templateUrl: "boardInsert.html"
})