ng-href 中的 Angularjs 函数
Posted
技术标签:
【中文标题】ng-href 中的 Angularjs 函数【英文标题】:Angularjs function in ng-href 【发布时间】:2015-07-05 13:51:56 【问题描述】:我想在 ng-href 中调用一个函数并从该函数返回链接。
当我单击该函数时,它会将页面发送到 url 中的该函数。喜欢:
localhost/pageLink()
<a ng-href="pagelink()" >Link</a>
如何运行函数并返回正确的链接?
【问题讨论】:
ng-href=" pagelink() " 【参考方案1】:插值可以解决问题:
<a ng-href="pagelink()">Link</a>
编辑:
对于任何抱怨这将在启动时执行代码的人:这正是它必须做的!它监视pagelink
方法的更改并更新href
属性。
原来的问题是:
如何运行函数并返回正确的链接?
pagelink()
不应该处理路由,而是返回一个字符串 指向目标路由。请参阅ngHref documentation。
如果你想自己处理路由,你应该使用ngClick
,而不是ngHref
。
【讨论】:
在调用返回 url 的函数时出现此错误:“错误:$rootScope:infdig Infinite $digest Loop”。这是为什么呢? 所有这一切都会在页面加载时在您的控制器中调用pagelink()
。在没有插值的情况下使用 ng-click
应该可以解决问题。
@ScottKoland 使用ng-click
的问题是你失去了<a>
的能力,比如target="_blank"
。在新标签页中打开网页是 javascript 的一大难题。
我发现我需要添加属性target="_self"
才能在您单击链接时使用它(而不仅仅是更新 URL)
@Elio 插值在这里是完全合法的。请参阅 ngHref 属性的文档:docs.angularjs.org/api/ng/directive/ngHref【参考方案2】:
假设pagelink()
位于$rootScope
,您将使用ng-click
:
<a href="" ng-click="pagelink()">Link</a>
您需要href=""
,以便浏览器在鼠标悬停时更改光标。
【讨论】:
无法在新标签页中打开网页以上是关于ng-href 中的 Angularjs 函数的主要内容,如果未能解决你的问题,请参考以下文章