我有一个以下链接
<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>
上重写任何内容。
他们是否有任何解决方案。
答案 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>