【发布时间】:2014-05-27 14:45:12
【问题描述】:
我的应用有 3 个视图(A、B、C)和 2 个状态(1,2)
html
<div ui-view="A"></div>
<div ui-view="B"></div>
<div ui-view="C"></div>
这两种状态分别称为list和create。在这两种状态下,视图 A + B 的模板和控制器保持不变,但视图 c 应该更改模板和控制器。我可以更改视图 c 的内容,但它会刷新视图 A 和视图 B,即它们的控制器中的内容再次运行。
组织路由器以防止这种情况的正确方法是什么?
到目前为止的js
$urlRouterProvider.otherwise("/basestate/list");
$stateProvider
.state('baseState', function() {
url:"/basestate",
templateUrl: "basestate.html",
controller: 'BaseStateCtrl'
})
.state('baseState.list', function() {
url: "/list",
views: {
"viewA@baseState": {
templateUrl: "viewA.html"
controller: "ViewACtrl"
},
"viewB@baseState": {
templateUrl: "viewB.html"
controller: "ViewBCtrl"
},
"viewC@baseState": {
templateUrl: "list.html"
controller: "listCtrl"
}
}
})
.state('baseState.create', function() {
url: "/create",
views: {
"viewA@baseState": {
templateUrl: "viewA.html"
controller: "ViewACtrl"
},
"viewB@baseState": {
templateUrl: "viewB.html"
controller: "ViewBCtrl"
},
"viewC@baseState": {
templateUrl: "create.html"
controller: "createCtrl"
}
}
})
【问题讨论】:
标签: javascript angularjs angular-ui angular-ui-router