淘汰错误?,无法匹配评论结束
Knockout bug?, cannot match comment end
不知道为什么这不起作用?....
<!-- ko if: $root.List().length > 1 || $root.AnyNotEqualToSelectedLanguage() -->
<div>
<select data-bind="options: $root.List, optionsText: 'displayText', value: selectedValue, optionsCaption: 'Choose...'"></select>
</div>
<!-- /ko -->
上面的代码生成一个"找不到要匹配的结束注释标签:koif:$root。列表().长度> 1 ||$root。AnyNotEqualToSelectedLanguage() "
而。。。。。。。
<!-- ko if: $root.List().length > 1 || $root.AnyNotEqualToSelectedLanguage() -->
<span>
<select data-bind="options: $root.List, optionsText: 'displayText', value: selectedValue, optionsCaption: 'Choose...'"></select>
</span>
<!-- /ko -->
这行得通....
有人对这个问题有快速的了解吗?
对于第一个代码块不起作用,我能想到的唯一有效解释是因为您的代码块可能在 <p></p>
标记内
例如
<p>
<!-- ko if: $root.List().length > 1 || $root.AnyNotEqualToSelectedLanguage() -->
<div>
<select data-bind="options: $root.List, optionsText: 'displayText', value: selectedValue, optionsCaption: 'Choose...'"></select>
</div>
<!-- /ko -->
</p>
由于p
不能包含block
级元素,因此浏览器在看到您的div
时将关闭p
标记。这个浏览器最终会像这样处理它:
<p>
<!-- ko if: $root.List().length > 1 || $root.AnyNotEqualToSelectedLanguage() -->
</p>
<div>
<select data-bind="options: $root.List, optionsText: 'displayText', value: selectedValue, optionsCaption: 'Choose...'"></select>
</div>
<!-- /ko -->
<p></p>
在这一点上,敲除很难解析它。
您可以检查为小提琴生成的源:http://jsfiddle.net/jcHzK/1/
它与@Artem创建的相同小提琴不起作用,因为代码现在位于p
标签内。
您的第二个代码有效,因为您已将块元素div
替换为内联元素span
一些代码和段落取自: https://github.com/knockout/knockout/issues/346
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 添加文字和评论功能更新Div
- 包括用于facebook评论框的JavaScript SDK
- facebook”;添加评论“;popup获胜'不要消失
- 循环结束/推送到数组之前在页面上呈现EJS
- 在另一个函数成功结束后调用该函数
- 在动画结束之前调用函数
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 使用nunjucks时发生块结束错误
- Javascript/jQuery压缩一个图像正确的评论帖子,并使用Ajax Laravel 5.2保存到控制器中
- HTML5获取弧的坐标's结束
- 内容结束时停止无限滚动
- 使用jQuery插入HTML页面的第一个项目缺少结束标记
- 如何在视频上显示海报图像使用Jquery结束
- 使用while循环+break是一种可接受的方式;goto;手术的结束
- 处理第三方库发送的ajax请求的开始和结束事件
- 结束后Javascript倒计时计时器重定向
- 如何在鼠标悬停时将对象从起始位置移动到结束位置,然后在鼠标悬停后再次移动
- 第一个字第一个字符第二个字第二个字符,一直到数组结束
- 淘汰错误?,无法匹配评论结束