调用ng-click函数后,JavaScript重定向到URL

时间:2017-09-20 08:36:22

标签: javascript html angularjs

我有一个以下链接

<a ng-click="logout()"><i class="fa fa-sign-out" name="sign-out"></i> Logout</a>

我希望当我点击此链接时首先调用他们的logout()功能,然后他们会重定向到下面的页面

https://demo.testlab.local/

问题是客户不想更改logout()方法的代码。但我只能在此链接代码<a ng-click="logout()"><i class="fa fa-sign-out" name="sign-out"></i> Logout</a>上重写任何内容。

他们是否有任何解决方案。

4 个答案:

答案 0 :(得分:1)

使用以下代码:

<a ng-click="logout()" ng-href="https://demo.testlab.local/"><i class="fa fa-sign-out" name="sign-out"></i> Logout</a>

希望这会奏效。

答案 1 :(得分:0)

假设他们不会改变logout(),甚至添加一个参数传递给它,并假设你想要在logout()中发生相同的功能,最好的做法是新方法,然后在注销后调用它:

<a ng-click="logout(); newLogout()"></a>

然后方法很简单:

newLogout() {
  this.$state.go(); // Using ui-router to move
  this.window.location = ""; // Using plain javascript
}

你确实提到过你可以只在链接上重写任何东西&#34;所以也许你甚至无法改变控制器?

答案 2 :(得分:0)

您可以在表单中使用按钮标记,当按钮提交时,您可以重定向到链接

<form action="https://demo.testlab.local/">
  <input type="submit" value="Logout" onclick="logout()"/>
</form>

答案 3 :(得分:0)

你可以试试这个,但它真的很糟糕:

<a ng-click="logout()" onclick="setTimeout(function () { console.log('changing location'); }, 1000);">Logout</a>

只需插入您要运行的代码来代替console.log('changing location');

编辑: 你真正需要的是:

<a ng-click="logout()" onclick="setTimeout(function () { window.location = 'https://demo.testlab.local/'; }, 1000);">Logout</a>