AngularJS--directive

1.angularJS中directive命名

在使用directive时,第一个参数既是在html文档中使用的标签名。但是有个问题需要注意,在js文件中使用驼峰命名时,在html文件中需要使用'-'进行分隔,如下所示:

JS文件,在module中定义directive为myDirective:

angular.module('app',[])
    .directive('myDirective', function() {
        console.log('hello');
        return {
            restrict: 'E',
            template: '<a href="http://www.baidu.com">Click me to go to Baidu</a>',
            replace:true
        };
    });
HTML文件,使用标签应为my-directive

<!DOCTYPE html>
<html ng-app="app">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="../js/angular.min.js"></script>
    <script src="chapter8_1.js"></script>
</head>
<body>
    <my-directive></my-directive>
</body>
</html>

如果在HTML中同样使用驼峰形式,则会产生未知标签的错误。

2.Directive的格式

下面都是用来声明前面创建指令的合法格式:

<my-directive></my-directive>
<div my-directive></div>
<div class="my-directive"></div>
<!--directive:my-directive-->

为了让AngularJS能够调用我们的指令,需要修改指令定义中的restrict设置。这个设置告诉AngularJS在编译HTML时用哪种声明格式来匹配指令定义。我们可以指定一个或多个格式。例如,之前创建的指令中可以指定以元素(E)、属性(A)、类(C)或注释(M)的格式来调用指令:
angular.module('app',[])
    .directive('myDirective', function() {
        console.log('hello');
        return {
            restrict: 'EAC',
            template: '<a href="http://www.baidu.com">Click me to go to Baidu</a>',
            replace:true
        };
    });

无论有多少种方式可以声明指令,我们坚持使用属性方式,因为它有比较好的跨浏览器兼容性:<div my-directive></div>

遵循这个约定的同时,也要注意每个浏览器的内置样式,以便决定指令模板在HTML中是嵌套在声明元素内,还是替换声明元素。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值