knockout 虚拟标签(virtual element) 在 table 中的问题

这几天看了MVC4 / 5 的一些东西, 基本上和 MVC 3都一样, 看起来毫不费力气, 项目还没有正式开工, 每天都是看文档,了解技术. 闲着无聊就把 knockout js 给看了一遍. 今天在看 SignalR的时候, 随手写了段测试代码,发现 Knockout 的虚拟标签有点问题, 一开始我是这样写的:

<table>        <tr data-bind="foreach:msgs">            <td data-bind="text:name"></td>            <td data-bind="text:msg"></td>        </tr> </table>

发现循环是发生在 tr 内部的 td 上的, 即生成的是列, 而不是行.

换成:

<table>
        <!-- ko foreach: msgs -->
        <tr>
            <td data-bind="text:name"></td>
            <td data-bind="text:msg"></td>
        </tr>
        <!-- /ko -->
</table>

居然提示:

Cannot find closing comment tag to match:  ko foreach: msgs

仔细看了一遍HTML, 没有发现没有闭合的标签,语法也没有错. td 里加内容也无济于事.

定位到 knockout-3.1.0.debug.js 的 getVirtualChildren 方法上, 传入的参数是一个 Comment ,即那个虚拟标签.

在看一下它的父对像是谁:

下面紧接着有一个 while 循环:

while (currentNode = currentNode.nextSibling) {

目的是去循环的判断和这个 Comment 在同一级上的 Element 是不是一个 Comment , 也就是在同一级中找到这个虚拟标签的关闭标签,, 很不幸, 在上面那段HTML 中,没有找到虚拟标签的闭合,不过表面上看来,它确实是有一个对应的闭合.

这是为什么?

返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/script/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索signalr
, 标签
, 循环
, knockout
, mvc4
, knockout js
, 初学mvc4
, knockoutjs前端技术knockout
, 对象控件mvc4
, 一个
, MVC4网站制作教程
, MVC4制作网站
闭合
虚拟机virtualbox、virtualbox创建虚拟机、virtualbox克隆虚拟机、virtualbox导入虚拟机、virtualbox删除虚拟机,以便于您获取更多的相关知识。

时间: 2024-12-31 06:40:23

knockout 虚拟标签(virtual element) 在 table 中的问题的相关文章

在table中tr标签中有一个onclick()事件,

问题描述 在table中tr标签中有一个onclick()事件, 现在我点击tr下的任一个td都会触发事件,怎么才能让第一个td不触事件 <table> <tr onclick="函数"> <td><input type="checkbox" --/></td> <td></td> --这里有n个td <td></td> <td></td&g

javascript-关于JS读取form表单的问题,form中嵌套table,input标签放入table中

问题描述 关于JS读取form表单的问题,form中嵌套table,input标签放入table中 <html> <head></head> <body> <form id = "form1" name = "form1" action = "b.html" method = "post"> <table id = "tab" name =

ORACLE虚拟索引(Virtual Index)

ORACLE虚拟索引(Virtual Index)   虚拟索引概念   虚拟索引(Virtual Indexes)是一个定义在数据字典中的假索引(fake index),它没有相关的索引段.虚拟索引的目的是模拟索引的存在而不用真实的创建一个完整索引.这允许开发者创建虚拟索引来查看相关执行计划而不用等到真实创建完索引才能查看索引对执行计划的影响,并且不会增加存储空间的使用.如果我们观察到优化器生成了一个昂贵的执行计划并且SQL调整指导建议我们对某些的某列创建索引,但在生产数据库环境中创建索引与测

asp.net-ASP.NET动态添加节点 实现每次单击动态生table中的行列

问题描述 ASP.NET动态添加节点 实现每次单击动态生table中的行列 点击这个添加更多动态复制上面的div中的table里面的控件 后台可以获取到每个table中标签的id 或者直接可以获取 多个table中控件上的数据 我是asp的新手不清楚这个 这个服务器的控件的js代码怎么写 或者可以直接在控件的添加更多事件里面实现 <div id="divtable"> <table class="add_table" id="table&

数据-在表单的table中的每一个单元格加入俩个下拉菜单,求大神指导怎么写,跪求~

问题描述 在表单的table中的每一个单元格加入俩个下拉菜单,求大神指导怎么写,跪求~ 在表单的table中的每一个单元格加入俩个下拉菜单,求大神指导怎么写?下面有初步的jsp代码.我用的是SSH框架.有一个下拉菜单的值是动态的,是别的表内的属性.怎么把一个单元格里的两个数据分别确定 <%@page contentType=""text/html; charset=UTF-8"" import=""java.util.*"&quo

基于jQuery替换table中的内容并显示进度条的代码_jquery

效果图如下:http://jialiren.sinaapp.com/jdt/ Html代码如下: 复制代码 代码如下: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>进度条列</title> <script type=&qu

火狐下table中创建form导致两个table之间出现空白的问题

在<FORM>中加CSS <table> ....... </table> <form style="padding:0; margin:0;"> <input name=""> </form> <table> ....... </table> 注意:在火狐中 <table> <form>.......</form> </tabl

JS获取Table中td值的方法

 这篇文章主要介绍了JS获取Table中td值的方法,实例分析了javascript操作table中td的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了JS获取Table中td值的方法.分享给大家供大家参考.具体如下: 1.当要获取多行中的任意TD时,采用给每个TD设置一个共同的class   代码如下: <tr> <td style="display: none" id="td2">002</td> <

Javascript遍历table中的元素示例代码

 这篇文章主要介绍了Javascript如何遍历table中的元素,需要的朋友可以参考下       例如: <table id=tb> <tr><th> </th><th> </th><th> </th><th> </th></tr> <tr><td> </td><td> </td><td> </