Angularjs 是否有一种规范的方法可以将url(angular ui router)中的查询参数与具有双向绑定的作用域上的变量同步?

Angularjs 是否有一种规范的方法可以将url(angular ui router)中的查询参数与具有双向绑定的作用域上的变量同步?,angularjs,angular-ui-router,Angularjs,Angular Ui Router,下面是我的意思的一个示例实现: 单程装订: 假设你已经用预览加载了plunkr 更改底部输入中仅包含“fooDefault”的文本时 然后您可以在url中同时看到查询参数和作用域上的值 另一方面: 假设你已经用预览加载了plunkr 更改顶部输入中包含“#/a?foo=fooDefault”的文本时 然后您可以同时看到url中的查询参数和范围更新上的值 最相关的代码部分(StackOverflow要求我包括一个): 如您所见,我使用了两个观察者来绑定“从url到范围”和“从范围到url” 但它

下面是我的意思的一个示例实现:

单程装订:

  • 假设你已经用预览加载了plunkr
  • 更改底部输入中仅包含“fooDefault”的文本时
  • 然后您可以在url中同时看到查询参数和作用域上的值
  • 另一方面:

  • 假设你已经用预览加载了plunkr
  • 更改顶部输入中包含“#/a?foo=fooDefault”的文本时
  • 然后您可以同时看到url中的查询参数和范围更新上的值
  • 最相关的代码部分(StackOverflow要求我包括一个):

    如您所见,我使用了两个观察者来绑定“从url到范围”和“从范围到url”

    但它有一个问题:


    有没有更好的方法来实现相同类型的双向绑定而不遇到这个问题?

    要让我的视图在js端和通过url操作手动更改搜索参数,我有如下方法:

    $scope.$on('$locationChangeSuccess', function () {
        console.log('$locationChangeSuccess LogsController');
        $scope.searchParams = parseSearchToTags($location.search());
        ... do something with params ...
    });
    
    成功!谢谢不过,我仍然不确定这是否是最好的解决办法。我有一种烦人的感觉,那就是观看
    $location.search()
    也应该有效。无论如何,我现在接受你的答案作为解决办法,除非/直到有更好的办法出现。
    $scope.$on('$locationChangeSuccess', function () {
        console.log('$locationChangeSuccess LogsController');
        $scope.searchParams = parseSearchToTags($location.search());
        ... do something with params ...
    });