Angularjs 角度状态。使用相同的状态参数
我有一个angular应用程序,我使用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
$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次相同的链接,它会重新加载状态,就像你从其他地方导航一样?