AngularJS中“href”和“ng-href”的区别

时间:2016-05-26 17:35:30

标签: angularjs

我同时使用hrefng-href,我看不出它们之间的区别。

为什么Angular具有ng-href属性,何时应该使用它?

2 个答案:

答案 0 :(得分:31)

From the documentation:

  

如果用户在Angular有机会用{{hash}}标记替换其值之前单击它,则在href属性中使用{{hash}}等角度标记会使链接转到错误的URL。在Angular替换标记之前,链接将被破坏,并且很可能会返回404错误。 ngHref指令解决了这个问题。

实际上,您唯一使用它的地方是您需要依赖Angular提供给DOM的值的链接。如果您不需要Angular用于该链接的一部分,或者您不打算使用Angular生成该链接,那么您不需要使用ngHref

答案 1 :(得分:11)

如果需要绑定模型中的值,请使用该指令。例如:

<div ng-init="address='http://stackoverflow.com/questions/37467603'">

  <a ng-href="{{address}}">Dynamic link</a>

  <br/>

  Change the link dynamically: <input type="text" ng-model="address">

</div>

在上面的示例中,address的值以编程方式绑定到输入文本框中的值,您可以更改该值。

如果您不需要动态(即对模型状态的变化做出反应),那么您可以继续使用href

<a href="http://stackoverflow.com/questions/37467603"/>Static link</a>