Mil*_*hev 4 naming-conventions angularjs angularjs-directive
我有角度指令的命名约定和角度规范化我的指令名称的方法有问题.
为了遵循现有项目中的一些命名约定,我想要添加角度,我需要以这样的方式用"_"命名我的自定义指令:
app.directive("directive_name", function(...) {...});
Run Code Online (Sandbox Code Playgroud)
遗憾的是,这样做似乎与Angular的指令名称规范化方式相矛盾,因此这些指令被忽略,未编译,因此未在屏幕上显示.
[问题]
是否可以以这样的方式命名指令,以后我们可以在HTML中使用它,如下所示:
<body>
...
<my_directive></my_directive>
</body>
Run Code Online (Sandbox Code Playgroud)
感谢您的时间和帮助!
是的,这是可能的,但你需要在camelCase中声明它:
app.directive("directiveName", function(...) {...});
Run Code Online (Sandbox Code Playgroud)
HTML
<my_directive></my_directive>
Run Code Online (Sandbox Code Playgroud)
但是imho - 更好,用破折号
<my-directive></my-directive>
Run Code Online (Sandbox Code Playgroud)
实际上,angular会从html中规范化指令名称,如下所示:
x-并data-从元素/属性的前面.:,-或_-delimited名驼峰.你可以在你的指令名称上使用低破折号,你只需要像以下一样编写你的指令名称:
app.directive("yourDirectiveName", function(...) {...});
Run Code Online (Sandbox Code Playgroud)
而且只在你的代码中使用低破折号:
<your_directive_name></your_directive_name>
Run Code Online (Sandbox Code Playgroud)
也许取决于您使用的angularjs的版本,但您的html标记名称和指令名称之间的匹配是由jqLite函数camelCase生成的
https://github.com/angular/angular.js/blob/v1.0.x/src/jqLite.js#L106
正如您所看到的,由于使用了正则表达式,您可以使用低破折号:
SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2854 次 |
| 最近记录: |