Javascript angularjs在我的活动中单击并href

Javascript angularjs在我的活动中单击并href,javascript,html,angularjs,Javascript,Html,Angularjs,您好,我的md列表中有此问题我有ng单击命名getDocument这将出现一个包含文档的对话框。但在我的生命中,我有了满足。包含类似href的html标记。范例 废话废话 现在的问题是,当我单击链接时,它将进入新选项卡并打开对话框 如何确定用户是否单击href或md listitem以便显示对话框 md-list md-list-item.md-2-line ng-repeat="document in ctrl.documents" div.md-list-item-text ng

您好,我的md列表中有此问题我有ng单击命名getDocument这将出现一个包含文档的对话框。但在我的生命中,我有了满足。包含类似href的html标记。范例

废话废话

现在的问题是,当我单击链接时,它将进入新选项卡并打开对话框

如何确定用户是否单击href或md listitem以便显示对话框

md-list
  md-list-item.md-2-line ng-repeat="document in ctrl.documents"
    div.md-list-item-text ng-click="ctrl.getDocument($event, document)"
      span ng-bind-html="(document.content | trustedHtml)"

据我所知,链接是在您的范围内呈现的,但当您单击它时,它会将您发送到另一个选项卡并仍然打开对话框

您的链接仍然是其到父对象的单击事件,因此您应该做的是将单击事件移动到另一个不包含链接的标记,或者向链接添加事件。stopPropagation:

@getDocument = (ev, document) =>
  console.log ev
或者,您还可以检查触发单击事件的元素。例如,由于您的主要问题是链接,因此可以在getDocument函数中执行以下操作:

md-list
  md-list-item.md-2-line ng-repeat="document in ctrl.documents"
    div.md-list-item-text
      button ng-click="ctrl.getDocument($event, document)"
      span ng-bind-html="(document.content | trustedHtml)"

我想保留我的ng click是否有机会在click event中确定它们???您可以将其保留在那里,但正在生成的链接需要有一个StopperPogation。如果我没有弄错的话,您也可以检查是哪个对象触发了事件,所以您可以在getDocument函数中检查它。我个人不推荐它,因为它可能会变得一团糟,但它会起作用。我会在我的答案上增加它。我检查event.target,但我看不到标记名我得到的跨度不是“a”,我不知道,但这对我来说很有用。你能帮我检查一下吗?如果event.target.attributeStyleMap.size=2.
md-list
  md-list-item.md-2-line ng-repeat="document in ctrl.documents"
    div.md-list-item-text
      button ng-click="ctrl.getDocument($event, document)"
      span ng-bind-html="(document.content | trustedHtml)"
ctrl.getDocument = function (event, document) {
  if (event.target.tagName === 'A') {
    return;
  }

  // your code
}