Page 64 - AngularJS权威教程
P. 64
44 第 8 章 指令简介
超链接标签知道当自己的href属性被设置为http://google.com之后,如果用户点击这个超
链接,它应该修改地址栏的URL并加载Google的首页。
而按钮标签则完全忽略href属性,并不会在被点击时有同样的行为。
因此,修改地址栏的URL并将你带到一个新的页面是超链接的预置行为,而不是按钮的预置
行为。
最后,两个标签在设置了title属性时则有相同的行为:当用户将鼠标悬停在元素上时会出
现一个提示框。
<a href="http://google.com"
title="click me">
Click me to go to Google
</a>
<button type="submit"
title="click me">Click me</button>
总地来说,浏览器会渲染HTML元素的样式和行为,这个能力是Web强大功能的基础之一。
任何一个浏览器厂商,无论是Google或Microsoft都尽量遵循同样的HTML标准,以此来保证
Web编程在跨设备和操作系统时的一致性。
老版本的IE浏览器并没有遵循标准的HTML定义,因此我们需要一些技巧才能让其
正常工作。更多内容请查看第30章。
近来出现了很多新的HTML标签,它们是HTML5标准的一部分。例如video标签可以定义一
个视频、电影剪辑或流视频:
<video href="/goofy-video.mp4"></video>
这些HTML5的新标签在比较新的浏览器中可以正常工作,但是IE8或更早的IE浏览器都没有
对其提供支持。
8.1 指令:自定义 HTML 元素和属性
基于我们对HTML元素的理解,指令本质上就是AngularJS扩展具有自定义功能的HTML元素
的途径。例如,我们可以创建一个自定义元素,它实现了<video>标签的功能并且能在所有浏览
器中工作:
<my-better-video my-href="/goofy-video.mp4">
Caneventaketext</my-better-video>
注意,这个自定义元素使用了特殊的开始和闭合标签my-better-video,以及my-href这个
自定义属性。
为了让这个标签更有用,可以将浏览器默认的video标签重载,用下面这种写法代替它:
<video my-href="/goofy-video.mp">
Can still take children nodes
</video>
正如我们看到的那样,指令可以和其他指令或属性组合在一起使用,这种组合使用的方式叫