Haw*_*awk 18 directive angularjs
我有我的html文件指令
<add />
<back />
Run Code Online (Sandbox Code Playgroud)
并且指令在表格上
.directive('add', ['$window', ...
Run Code Online (Sandbox Code Playgroud)
和
.directive('back', ['$window',
Run Code Online (Sandbox Code Playgroud)
这很好用.
如果我将指令更改为驼峰案例:
.directive('addPlayer', ['$window', ...
<add_player />
<back />
Run Code Online (Sandbox Code Playgroud)
和
<add:player />
<back />
Run Code Online (Sandbox Code Playgroud)
显示很好而
<add-player /> regular dash
<back />
Run Code Online (Sandbox Code Playgroud)
仅显示<add-player>,之后的所有内容均未显示.
有什么想法吗?
编辑:
我在这里得到了同样的行为
bPr*_*tik 35
为了让你的问题得到休息,我引用了AngularJS团队的官方声明:(原文如此)
html规范定义的自闭或空元素对于浏览器解析器来说非常特殊.你不能自己做,所以对于你的自定义元素你必须坚持非空元素(
<foo></foo>).这不能改变角度.
- IgorMinar
来源:https://github.com/angular/angular.js/issues/1953#issuecomment-13135021
按照AngularJS问题页面上的其余对话,他们讨论了使用XHTML浏览器可接受的自闭标签提供内容的可能性.但请注意,AngularJS并不完全支持它.
HTML规范不允许在非void元素上使用自动关闭标签。
元素具有开始标记以指示它们的开始位置。非空元素具有结束标记以指示它们在何处结束。
开始标签由以下部分组成,并按照以下顺序排列:
- 一个“ <”字符。
- 元素的标签名称。
- 可选地,一个或多个属性,每个属性之前必须有一个或多个空格字符。
- (可选)一个或多个空格字符。
- 可选地,“ /”字符,仅当元素为void元素时才存在。
- 一个“>”字符。
HTML5规范中的void元素数量有限。以下是完整列表:
area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr。
浏览器的解析器必须听规范。由于在非void元素标记中使用斜杠无效,因此解析器将忽略结尾/>和<back />手段<back>。因此,您永远都不会关闭阻止其他元素起作用的第一个元素。
在Plunker上,您有:
<body>
<back></back>
Self closing <back />
Self closing <back />
</body>
Run Code Online (Sandbox Code Playgroud)
解析成
<body>
<back></back>
Self closing <back>
Self closing <back>
</back>
</back>
</body>
Run Code Online (Sandbox Code Playgroud)
然后template: '<button>back</button>',您在指令上指定将指令back(及其子代)替换为指定的HTML,从而导致:
<body>
<back>
<button>back</button>
</back>
Self closing <back>
<button>back</button>
</back>
</body>
Run Code Online (Sandbox Code Playgroud)
<back></back>全部使用,它将正常工作。或者,您可以使用元素属性:<div back="attr"></div>。
有关更多详细信息,请参见以下讨论:
我最近遇到了同样的问题,并设法通过不使用自闭标签来修复它.尝试<add-player></add-player>代替自动关闭版本.
我不知道为什么自闭标签不能与指令的标签名称中的短划线一起使用.在当天进行了快速研究,在HTML/XHTML方面没有找到任何内容.也许是Angular的bug /限制?
| 归档时间: |
|
| 查看次数: |
5372 次 |
| 最近记录: |