我正在尝试构建一个超级简单的AngularJS应用程序,用于接受两个文本框中的凭据,然后使用双向绑定来在单击按钮时重定向到包含这两个变量的URL。
我的问题是,我可以使其在简单情况下工作。
<a href=...>
(或者可能是ng-href=...)但不知道为什么,无论我做什么,我都无法使用
a标签进行重定向。
<button>
我尝试了很多变化,但这是我想要做的事情
<button ng-click="$location.path('http://example.com/login.jsp?un={{username}}&pw={{password}}')" class="btn btn-lg btn-warning">Log In!</button>
如果我在控制器中调用一个函数,我可以让它工作,但这是一件很简单的事情,如果可能的话,我想在页面上完成它。
另外,作为一个附带问题,像这样登录网站的安全风险有哪些?
**编辑:令我困惑的部分是,这个可以工作(只是没有双向绑定工作):
<button onClick="window.open('http://www.example.com/{{username}}');">
我本来以为将 onClick 改成 ng-click 会有相同的行为,但是可以实现双向绑定。
重新编辑/解决方案 好吧,最后我终于找到了可行的解决方案。
我不知道为什么 Button 标签无法实现上述行为,但以下是可用的代码。
<a href="https://www.example.com/login.jsp?un={{username}}&pw={{password}}" class="btn btn-lg btn-warning">Log In!</a>
通过将文本的类别设置为我想要用于按钮的类别,文本看起来就像一个按钮一样。
$location
不在范围内,因此在视图中无法访问。 - kamituel{{username}}
和{{password}}
设置之前,应禁用该链接。对于像这样的动态URL,最好使用ng-href
(https://docs.angularjs.org/api/ng/directive/ngHref)进行实践,尽管在这种情况下可能并不重要,因为它似乎取决于用户输入,所以它对你没有帮助(即你需要启用/禁用)。 - craigb