AngularJS笔记
一。
- 出现错误:Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
- 解决:因为我是以文件的形式打开的,由于chrome 的设置问题,只支持http, data, chrome, chrome-extension, https, chrome-extension-resource 这些格式,不支持file:///xxxx.html 这种格式,所以会出现这个问题。
- 方法一:启动chrom 参数 --allow-file-access-from-files
- 方法二:启动tomcat,把你的文件全扔到webapps 里,然后在浏览器里访问,就可以了。
二。directive内的controller不是module下的controller,而是为了暴露出他所含有的函数供别处调用
三。element.addClass('btn btn-primary');引入bootstrap对样式进行修改
四。directive里,想要让指令暴露方法供别处调用,用controller,而link用来绑定元素之列
五。require: '^superman',说明这个指令是依赖于superman指令
六。restrict – 这个属性用来指定指令在HTML中如何使用(还记得之前说的,指令的四种表示方式吗)。在上面的例子中,我们使用了 ‘AE’。所以这个指令可以被当作新的HTML元素或者属性来使用。如果要允许指令被当作class来使用,我们将 restrict 设置成 ‘AEC’。(共有AECM)
七。link: function(scope, element, attrs, supermanCtrl) 最后一个参数表明所依赖的指令里暴露的controller
八。独立scope:scope:{},是每一个指令都是独立的 不会互相影响
九。下一个你需要知道的参数为 replace,顾名思义,这是替换的意思,默认为 false,就是将模版的内容追加到元素中,如果设置为 true,那么模版的内容将会替换元素的内容。
原来的输出将会成为下面的样子,实际上,你在页面中将会看不到输出的内容,hello 元素浏览器是不认识的,而其它两种方式,我们又没有生成任何的元素。