小编Wol*_*olf的帖子

AngularJs位置路径更改,而不是所有控制器都重置

我的问题的简短版本是:如何更改URL而无需触发路由更改或无需在当前显示的页面上运行所有控制器?

细节:

我有一个显示在其内部的模板,该模板<ng-view>由3个控制器控制.在页面的最顶部,我有一个交互式地图.单击区域时,它会广播一个单击,其他组件会在其上进行选择并显示有关此区域的数据.设置非常简单.

我想做的是让我的用户深入链接到内容.因此,每当有人点击链接时,我都想更改可以复制并粘贴到其他浏览器的URL.其他一些用户只需点击链接即可看到第一个看到的状态.

目前我使用与此类似的代码更改位置:

  $scope.$on('mapRegionClick', function($scope, regionCode) {
    var url = generateURL(regionCode);

    $scope.currentScope.$apply(function(){
      $location.path(url);
    });});
Run Code Online (Sandbox Code Playgroud)

然后在我的路由中拾取URL,并正确显示地图和数据.这样做的缺点是每次我点击地图和URL更改时,都会重新生成整个模板/视图.因为生成地图有点沉重,我只想触发对数据显示控制器的更改.

可能吗?怎么样?

我可以在控制器之间进行一些通信,实现我的目标,但后来我无法进行深层链接.

PS:我不想用$location.search()reloadOnSearch=false.我的链接必须很漂亮:)

javascript angularjs

8
推荐指数
1
解决办法
4081
查看次数

标签 统计

angularjs ×1

javascript ×1