Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 角度ui路由器1中的DeepStateRedirect-如何重置深度状态?_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs 角度ui路由器1中的DeepStateRedirect-如何重置深度状态?

Angularjs 角度ui路由器1中的DeepStateRedirect-如何重置深度状态?,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我正在使用angularJS并迁移到ui路由器v1。我试图让深度状态重定向像以前版本的ui路由器一样工作 我已经在我的配置模块中成功地实现了DSRPlugin,深度状态重定向正在启动并按预期工作。但是,我无法重置深度状态。我需要能够重置按钮点击的深度状态,这意味着我的组件内的逻辑。以前,我可以将$deepStateRedirect注入我的控制器,并简单地调用$deepStateRedirect.reset({}),但是我不再能够注入$deepStateRedirect。如何访问ui路由器v 1中

我正在使用angularJS并迁移到ui路由器v1。我试图让深度状态重定向像以前版本的ui路由器一样工作

我已经在我的配置模块中成功地实现了DSRPlugin,深度状态重定向正在启动并按预期工作。但是,我无法重置深度状态。我需要能够重置按钮点击的深度状态,这意味着我的组件内的逻辑。以前,我可以将$deepStateRedirect注入我的控制器,并简单地调用$deepStateRedirect.reset({}),但是我不再能够注入$deepStateRedirect。如何访问ui路由器v 1中的重置方法

我还注意到,当使用DSR作为配置对象时,可以指定一个函数来确定是否发生重定向。我也可以用它来决定是否进行重定向,但是缺少文档。它表明我应该返回一个truthy值来执行重定向,或者返回一个false值来防止重定向。在测试中,返回true或false只会导致转换错误:“i.state不是函数”

我没有使用构建过程,只是简单的脚本包含。
有没有人知道如何通过上述两种方法进行重置?

这可能不是重置的最佳实践方式,但我在注销各种ui路由器对象后找到了解决方案

在控制器内部,必须注入$uiRouter对象。然后,您可以将变量设置为$uiRouter.\u plugins[“deep state redirect”]。重置()和其他方法在插件的原型上可用

然后,您可以使用该对象并调用这些方法,类似于注入$deepStateRedirect时在上一版本中的工作方式

var $deepStateRedirect = $uiRouter._plugins["deep-state-redirect"];
$deepStateRedirect.reset({});