【发布时间】:2017-03-30 13:23:24
【问题描述】:
我在使用 ui.router 时遇到了一些问题。 我已经定义了我认为可以在 3 个状态之间切换的状态
$stateProvider
.state('rackOrShelf', {
url: '/information',
templateUrl: 'Scripts/html/rackOrShelfPartial.html'
}).state('door', {
url: '/information',
templateUrl: 'Scripts/html/doorPartial.html'
}).state('frame', {
url: '/information',
templateUrl: 'Scripts/html/framePartial.html'
});
我有一个 html 页面,它定义了一个在顶部显示常见内容的标题。在 div 的更下方,我有 ui-view 占位符
html页面定义了一个ng-controller,它做一些工作并返回一个json模型,其中一个参数是一个
model.Transiton = 'frame';
然后我用它来调用它。 $state.transitionTo(model.Transiton);
问题是如果 model.Transition = 'rackOrShelf' 或 'door' ui.router 似乎工作正常。但是如果我这样做 model.Transition = 'frame' 我总是似乎得到了门模板Url的内容?这是为什么呢?
这也是一个 SPA。 我使用 $routeProvider
$routeProvider
.when("/main", {
templateUrl: "Scripts/html/main.html",
controller: "mainController"
}).when("/information", {
templateUrl: "Scripts/html/information.html",
controller: "informationController",
reloadOnSearch: false
})
.otherwise({ redirectTo: "/main" });
所以这是一个更新,这似乎有效。
$stateProvider
.state('empty', {
template: '<div></div>'
})
.state('rackOrShelf', {
templateUrl: 'Scripts/html/rackOrShelfPartial.html'
}).state('door', {
templateUrl: 'Scripts/html/doorPartial.html'
}).state('frame', {
templateUrl: 'Scripts/html/framePartial.html'
}).state('information', {
url: '/information',
params: {partial: 'empty'},
controller: function ($state) {
$state.go($state.params.partial);
}
});
在我的角度控制器中,我有这样的东西。
$state.transitionTo('information', { partial:<'door' || 'frame' || 'rackOrShelf'> });
【问题讨论】:
标签: javascript angularjs