我正在学习AngularJS,看到它添加了一些自己的属性,这些属性也不是从数据开始的,也不是标准的html标签属性,比如:
<html ng-app>或者这样:
<body ng-controller="PhoneListCtrl">这些ng-*属性是从哪里来的,它是有效的HTML吗?我在哪里可以读到关于这方面的更多信息?
发布于 2012-08-24 18:49:36
严格地说,这些额外的属性没有在HTML规范中定义,因此不是有效的HTML。您可以说AngularJS提供并解析了HTML规范的超集。
但是,从v1.0.0rc1开始,您可以使用data-*属性,例如我认为是有效HTML5的<html data-ng-app>。Source。
这里有一个AngularJS Compiler指南,其中包含有关该过程的更多信息。简而言之,AngularJS编译器读取您的HTML页面,使用这些属性指导它在加载后通过javascript和HTML DOM编辑和更新页面。
发布于 2013-03-10 08:39:50
来自文档:http://docs.angularjs.org/guide/directive
<!doctype html>
<html data-ng-app>
<head>
<script src="http://code.angularjs.org/1.0.7/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<div data-ng-controller="Ctrl1">
These are all valid directive declarations:<br/>
<input ng-model='name'> <hr/>
<span ng:bind="name"></span> <br/>
<span ng_bind="name"></span> <br/>
<span ng-bind="name"></span> <br/>
<span x-ng-bind="name"></span> <br/>
<span data-ng-bind="name"></span> <br/>
</div>
</body>
</html>我最喜欢data-*whatever*声明,因为它符合HTML5。
因此,对于我的任何角度声明(例如ng-controller、ng-app、ng-repeat等)或自定义指令,我总是以data-作为它们的前缀。
发布于 2012-08-24 18:55:57
这些ng-*属性是从哪里来的
从main ng module。Source code。
这是一个有效的
吗?
不是的。但是属性样式的指令可以以x-或data-为前缀,以使其符合HTML验证器。参见direcives documentation。
https://stackoverflow.com/questions/12107504
复制相似问题