【问题标题】:How to properly refresh scope when changing state in ui.router在ui.router中更改状态时如何正确刷新范围
【发布时间】:2014-09-01 17:29:15
【问题描述】:

我正在使用 ui.router 来管理我的应用程序中某些页面的状态。当我更改状态时,我希望控制器重新加载范围内的对象。但是,我没有找到一种方法来绑定状态更改来做到这一点。

有没有办法可以挂钩状态转换并触发对我的角度资源的请求?

这是我的两个状态转换,它们位于不同的函数中。

$state.transitionTo('myObj.current', {myObjId: $scope.myObj.myObjId});

$state.transitionTo('myObj.current.edit', {myObjId: $scope.myObj.myObjId});

当状态改变时,我想调用 _getMyObjDetails 函数。

var   _getMyObjDetails = function (myObjId) {
      var _myObj = MyObjService.get({myObjId: myObjId});
      _myObj.$promise.then(function (data) {
        $scope.myObj = data;
        ngProgress.complete();
      });
      return _myObj;
    };

【问题讨论】:

    标签: javascript angularjs angularjs-scope angular-ui-router


    【解决方案1】:

    如果我理解正确,我认为您唯一需要做的就是监听 $stateChangeStart 事件。您可以将 $rootScope 注入您的控制器并使其如下所示:

    $rootScope.$on('$stateChangeStart', function (event, next) { /* Your code... */ });
    

    希望对您有所帮助。

    【讨论】:

    • 我最终使用了 $stateChangeSuccess,但这让我足够接近 :)。谢谢!
    猜你喜欢
    • 2019-07-10
    • 1970-01-01
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    • 2018-05-21
    相关资源
    最近更新 更多