Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度状态。使用相同的状态参数_Angularjs - Fatal编程技术网

Angularjs 角度状态。使用相同的状态参数

Angularjs 角度状态。使用相同的状态参数,angularjs,Angularjs,我有一个angular应用程序,我使用$state.go('state_name',stateparms) 触发state.go事件的按钮始终在页面上可用,而url根据stateparms的不同而变化 在我将相同的stateParams对象传递给$state.go之前,一切都很正常。在这种情况下,什么也不会发生。看起来像是比较url中的stateparms和我传递给state.go的stateparms对象,但由于值相同,所以不执行任何操作。我希望$state.go执行与传递state para

我有一个angular应用程序,我使用
$state.go('state_name',stateparms)

触发
state.go
事件的按钮始终在页面上可用,而url根据
stateparms
的不同而变化

在我将相同的stateParams对象传递给
$state.go
之前,一切都很正常。在这种情况下,什么也不会发生。看起来像是比较url中的
stateparms
和我传递给
state.go
stateparms
对象,但由于值相同,所以不执行任何操作。我希望
$state.go
执行与传递state params对象时相同的操作,该对象的值与url不匹配

我知道这可以通过
$state.go('state_name',stateParams,{reload:true})
解决,但在我的情况下,这是我真正不需要的,因为它会重新加载我不需要重新加载的应用程序的某些部分


有谁能告诉我如何调用
状态。使用相同的
stateParams
对象而不重新加载:正确,因此角度可以按预期工作。

根据注释,这里有一个代码片段,似乎可以满足您的需要。也就是说,如果您单击链接,它将始终处于该状态,即使您使用相同的参数:

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;
  });
})

ui sref=“whatever(variablequaltostateparams)”?不幸的是,它没有帮助。相同的行为((添加ui sref opts=“{reload:true}”?)它可以工作,但它确实会重新加载我不需要的内容((所以你想要一个指向相同状态和参数的链接,如果你点击它,它会重新加载状态?如果你点击10次相同的链接,它会重新加载状态,就像你从其他地方导航一样?