首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有相同state.go的角stateParams

具有相同state.go的角stateParams
EN

Stack Overflow用户
提问于 2017-03-20 15:08:54
回答 1查看 214关注 0票数 1

我有一个使用$state.go('state_name', stateParams)的角度应用程序。

触发state.go事件的按钮在页面上总是可用的,而url则根据stateParams进行更改。

在我将相同的stateParams对象传递给$state.go之前,一切都是完美的。在这种情况下,什么都不会发生。看起来像角比较stateParams在url和stateParams对象,我传递给state.go,什么都不做,因为值是相同的。我期望$state.go执行相同的操作,就像当我用不匹配url的值传递状态params对象时一样。

我知道这可以用$state.go('state_name', stateParams, {reload: true})解决,但在我的例子中,这是我并不真正需要的,因为它重新加载了我的应用程序中不需要重新加载的部分。

任何人都可以告诉我,如何使用相同的state.go stateParams 对象调用,而不需要重新加载: true,所以角按预期工作。

EN

回答 1

Stack Overflow用户

发布于 2017-03-20 16:06:31

根据注释,这里有一个代码片段,看起来可以做您想做的事情。如果你在一个链接中点击,它总是会进入那个状态,即使你在那里有相同的参数:

代码语言:javascript
复制
myApp.config(function ($provide) {
  $provide.decorator('$state', function ($delegate) {
    // let's locally use 'state' name
    var state = $delegate;

    // let's extend this object with new function
    // 'baseGo', which in fact, will keep the reference
    // to the original 'go' function
    state.baseGo = state.go;

    // here comes our new 'go' decoration
    var go = function (to, params, options) {
      options = options || {};

      // only in case of missing 'reload'
      // append our explicit 'true'
      if (angular.isUndefined(options.reload)) {

          options.reload = true;
      }

      // return processing to the 'baseGo' - original
      this.baseGo(to, params, options);
    };

    // assign new 'go', right now decorating the old 'go'
    state.go = go;

    return $delegate;
  });
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42907184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档