Javascript Angularjs-与标准html元素同名的自定义指令

Javascript Angularjs-与标准html元素同名的自定义指令,javascript,html,angularjs,angularjs-directive,Javascript,Html,Angularjs,Angularjs Directive,如果我创建了一个与标准html属性或元素同名的指令,会发生什么? 例如,如果我定义: .directive('link', function(){ return { restrict: 'A', link: function(scope, elements, attributes){ // do something } }) 像这样使用 <a link="http://www.foo.com" ng-href="www.google.com">

如果我创建了一个与标准html属性或元素同名的指令,会发生什么? 例如,如果我定义:

.directive('link', function(){
  return {
    restrict: 'A',
    link: function(scope, elements, attributes){
      // do something
   }
})
像这样使用

<a link="http://www.foo.com" ng-href="www.google.com">Conditional Link </a>

它会与标准的
元素冲突吗

也许在这种情况下不会,因为我已经将指令限制为只包含属性,但我的问题更一般

例如,如果我将指令命名为
href


指令是否总是优先于标准html元素或属性?

指令可以将行为附加到现有html元素。 如果您创建指令href,我相信应该没有问题,除非您的指令删除了自身(或
href
)。除非在同一元素上定义或应用多个指令,否则没有优先级的概念

请记住,您不能更改浏览器的行为,如果浏览器看到带有远程url的href,它将发出请求


AngularJS本身使用
作为指令,在标准输入行为完好无损的情况下运行良好。

我还使用了
的匹配项来附加行为,但除非我真的愿意,否则我会小心不要弄乱angular。因此,使用相同的指令名称o不会有冲突,除非我使用
replace:true
一般来说应该没有问题?如果在我的示例中,我对
link
指令使用了
restrict:'E'
,那么实际上应用程序中的所有`'元素都将显示为自定义指令?所以他们会使用我的自定义行为,但浏览器仍然会标准地使用它们(除非我替换它们),不是吗?是的,我想是的。如果它适用于
输入
,则应适用于
链接
。你为什么不试试并分享你的发现呢。指令是由Angular定义的词汇表,最后所有内容都是html元素或属性;这毕竟是该指令的目的。