未捕获的错误:断言失败:变形标记,变形-28-start和变形-28-end,有不同的父母

时间:2014-09-03 06:09:37

标签: ember.js handlebars.js

未捕获错误:断言失败:变形标记,变形-28-start和变形-28-end,具有不同的父母。浏览器已修复您的模板以输出有效的HTML(例如,检查您是否已正确关闭所有代码并在创建包含“{{#each}}”的表时使用了TBODY标记。

代码段:

<div class="panel-body">
<div class="row">
{{#each}}
  <div class="col-xs-3">
    <label class="control-label">{{fieldname}}</label>
  </div>
  {{#if fullcolumn}}
      <div class="col-xs-9">
        <input type="text" class="form-control" placeholder="full">
      </div>
  {{else}}
      <div class="col-xs-3">
        <input type="text" class="form-control" placeholder="half">
      </div>
  {{/if}}
  {{#if newrow}} 
      </div>
      <div class="row">
  {{/if}}
{{/each}}
</div>
</div>

指导我在此代码中出错了什么?

我的要求是:

嗨,我要求在两个列表中显示字段详细信息。例如

Field1   Elt1        Field2    Elt2
Field3   Elt3
Field4   Elt4        Field5    Elt5

我有一系列字段,

[
  {
    "fieldname":"Field1",
    .
    .
  },
  {
    .
    .
  },
  .
  .
  .
]

怎么可能实现这个目标?

2 个答案:

答案 0 :(得分:2)

{{#if newrow}}   
      </div>  
      <div class="row">
{{/if}}

这是有问题的代码。外部div each在其中关闭。

此检查由本MR提出:https://github.com/emberjs/ember.js/pull/4404

您不应关闭在其中each之外打开的标记。

答案 1 :(得分:1)

我认为问题来自{{#if newrow}}块。您似乎正在动态构建列并尝试插入新行。模型上的逻辑没有按预期工作,让你的DOM被管理。尝试移动到双嵌套{{#each}}并避免这种切换逻辑。