我刚接触Angular,并尝试通过他们官网的教程学习。
据我所理解,我可以使用href="#/phones/{{phone.id}}"
,Angular处理时会绑定{{phone.id}}
,但为了绑定src
属性,需要使用ng-src
属性,否则浏览器将逐字处理{{ expression }}
标记。
为什么src
不能与Angular绑定,而href
可以呢?为什么我们不需要像ng-href
这样的东西来使它生效呢?
我刚接触Angular,并尝试通过他们官网的教程学习。
据我所理解,我可以使用href="#/phones/{{phone.id}}"
,Angular处理时会绑定{{phone.id}}
,但为了绑定src
属性,需要使用ng-src
属性,否则浏览器将逐字处理{{ expression }}
标记。
为什么src
不能与Angular绑定,而href
可以呢?为什么我们不需要像ng-href
这样的东西来使它生效呢?
如果在 href 属性中使用类似 {{phone.id}} 的 Angular 标记,如果用户在 Angular 替换 {{phone.id}} 标记之前单击该链接,则链接将指向错误的 URL。 在 Angular 替换标记之前,该链接将无效,并且很可能返回 404 错误。
ngHref 指令解决了这个问题。
错误的写法:
<a href="#/phones/{{phone.id}}">Possibly broken phone</a>
写作的正确方式:
<a ng-href="#/phones/{{phone.id}}">Working phone</a>
来自ngSrc文档:
在href属性中使用类似{{hash}}的Angular标记,如果用户在Angular有机会将{{hash}}标记替换为其值之前单击链接,则链接将转到错误的URL。
实际上,使用 href 是不安全的方法。
但是src不等待任何内容,浏览器在渲染时获取src并抛出异常。