我有一张带有标记的地图。单击标记时,将打开包含标记详细信息的子视图。
.state('map', {
url: '/map',
...
})
.state('map.detail', {
url: '/:markerId',
...
})
如果您打开标记的详细信息,请离开地图,然后使用ui-sref="map"
返回地图,在子视图打开的情况下,网址将更改为/map/<markerId>
。
点击/map
时,我想直接转到ui-sref="map"
,但不想重新加载'map'
只是隐藏任何子视图。
有一种简单的方法吗?我已经在这两个州尝试了cache: false
的组合,但这并不是我想要的。
答案 0 :(得分:1)
我不完全确定,你的问题是什么。因为这个
...点击ui-sref =“map”时我想直接进入/ map,但是不想重新加载地图只是隐藏任何子视图......
是UI-Router的默认行为。 a working plunker
这些链接不会触发父控制器的重新初始化('map'
状态)
<a ui-sref="map">
<a ui-sref="map.detail({markerId:1})">
<a ui-sref="map.detail({markerId:22})">
这样的州:
.state('map', {
url: "/map",
templateUrl: 'tpl.html',
controller: 'ParentCtrl',
})
.state('map.detail', {
url: "/:markerId",
templateUrl: 'child.html',
controller: 'ChildCtrl',
})
两位控制员:
.controller('ParentCtrl', ['$scope', function ($scope) {
$scope.timestamp = new Date().getTime();
}])
.controller('ChildCtrl', ['$scope', function ($scope) {
$scope.timestamp = new Date().getTime();
}])
我们可以看到,'map'
状态仍未改变
检查here