角度 ui 路由器可选查询参数加载控制器两次

Angular ui router optional query param load the controller twice

本文关键字:控制器 两次 加载 参数 路由器 ui 查询 角度      更新时间:2023-09-26

我想在某些页面中使用带有可选参数的 ui sref,但问题是当我没有将参数传递给 ui sref 时,它会加载控制器两次。我想有一个可选的查询参数。有更好的方法吗?

$stateProvider
        .state('play', {
          url        : "/lottery/:id/:isFree",
          controller : "myController",
          templateUrl: "client/play/index.html"
        });

ui-sref="play({id: game.id, isFree:4}) // this is working fine.
ui-sref="play({id: game.id}) // this is reloading the controller twice
此问题

现已修复。在这里试试这个工作 plunker,它使用最新的 0.2.13 版本

<script data-require="ui-router@*" 
    src="//rawgit.com/angular-ui/ui-router/0.2.13/release/angular-ui-router.js"
></script>

该问题可以在旧版本中重现,例如 0.2.8(不确定哪个版本修复了这个问题)。有一个指向"破碎"的 plunker 的链接

<script data-require="ui-router@*" 
    src="//rawgit.com/angular-ui/ui-router/0.2.8/release/angular-ui-router.js"
></script>