我正试图通过https://www.meteor.com/tutorials/angular/templates的Meteor教程 有一部分是我无法弄清楚的 在他们的客户端/ main.js中:
<body>
<div class="container" ng-app="simple-todos">
<todos-list></todos-list>
</div>
</body>
他们只是在中间添加了一个<todos-list>
标记,并加载了该模板。我无法弄清楚todos-list如何被转换为实际模板,是否有一些名称转换约定“todos-list”被翻译为“todosList”并以此方式引用?
提前致谢
答案 0 :(得分:4)
这是由于AngularJS执行了规范化。
<强>正常化强>
Angular规范化元素的标记和属性名称,以确定哪些元素与哪些指令匹配。我们通常通过其区分大小写的camelCase规范化名称(例如ngModel)来引用指令。但是,由于HTML不区分大小写,我们通过小写形式引用DOM中的指令,通常使用DOM元素上的划线分隔属性(例如ng-model)。
规范化过程如下:
- 从元素/属性的前面剥离x-和数据。
- 将:, - 或_分隔的名称转换为camelCase。
醇>
链接到AngularJS文档here
答案 1 :(得分:1)
todosList
是一个组件。由于html不支持大小写,因此您在标记中编写todos-list
。组件可以带有与之关联的模板(html标记)。因此,当您在html中放置<todos-list></todos-list>
时,angular会在那里插入html。查看组件和指令的角度文档。网上有很多例子。