【问题标题】:Redirect function in angular角度重定向功能
【发布时间】:2017-12-19 19:47:26
【问题描述】:

在 Angular 项目中,我有一个函数。当我运行它时,我希望去家里。

在我的函数内部我有一个条件,如果是真的我想重定向。

 if (condition) {
     location.url('/home');
     // code...
 }

【问题讨论】:

  • 我建议阅读 Angular 的 router 指南。 Angular 应该处理所有的路由器更改。通过执行location.href = ...,您正在使用本机 js 重定向,这会强制您的应用刷新。 (这会损害用户体验)

标签: javascript angular typescript redirect location


【解决方案1】:
constructor(private router: Router) { }

 if (condition) {
      this.router.navigate(['/home']);
 }

【讨论】:

    【解决方案2】:

    有点混淆您所说的“重定向”是什么意思。如果您有一个决定最终位置的条件,那么您可以使用 go to one or other。

    if(location) {
       $location.url('/home');
    } else {
       $location.url('/otherDestination');
    }
    

    如果您指的是反映在窗口历史记录中的真正重定向,请阅读AngularJS 提供的$location.replace 函数。向下滚动到标有“替换方法”的部分。希望这会有所帮助!

    $location.url('/otherDestination').replace();
    

    【讨论】:

    • 我有一个条件:if (task.id == id ) { location.url('/home'); // code... }
    • 你能澄清一下吗?你问如果 task.id != id 如何重定向?
    • 条件不重要。我只是对你在问什么感到困惑。如果你需要导航到不同的页面 if task.id != id 那么你可以有一个 else 语句,在那里你有 location.url 去不同的页面(比如在答案 if/else 语句中)对吗?如果我误解了这个问题,我深表歉意,但这似乎很简单。
    【解决方案3】:

    你总是可以使用 JS

    window.location.href = 'xyz';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 2016-07-28
      • 2018-11-19
      • 2014-08-19
      相关资源
      最近更新 更多