【问题标题】:Prefill jsrender template预填充 jsrender 模板
【发布时间】:2016-04-16 09:08:27
【问题描述】:

如何将选择(具有选项)呈现为表格的一部分?

$('select').append($('<option>').text('single'));
$('table').append($('#rowTmpl').render({name:'peter'}));
th,td {border:1px solid black;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/BorisMoore/jsrender/master/jsrender.min.js"></script>
<div style="display:none" id="statis">
  <select></select>
</div>
<script id="rowTmpl" type="text/x-jsrender">
  <tr>
    <td>{{:name}}</td>
    <td>{{include tmpl=#statis /}}</td>
  </tr>
</script>

<table>
  <tr>
    <th>Name</th>
    <th>Stat</th>
  </tr>
</table>

第一个 javascript 行将一个选项附加到选择(第 4 个 html 行)。 第二个 javascript 行应该为peter 的人在表格中呈现一行。

问题:

  1. 我无法将 div 设置为脚本标签,因为第一行 javascript 行找不到选择标签。
  2. 我无法通过 {{include 呈现 div,因为 #statis 是 div 而不是脚本标签。

【问题讨论】:

  • 你能解释更多吗?!
  • 预期是一个名称和统计名称为Peter 的表格,第二列中的选择字段用于选择统计信息。 JSRender 是一个使用 json 渲染 html 的模板引擎,用于渲染表格的数据行。具体要解释什么?

标签: javascript jquery json jsrender


【解决方案1】:

您的 {{include}} 有语法错误。应该是:

<td>{{include tmpl="#statis" /}}</td>

实际上你可以在隐藏的 div 中声明一个 JsRender 模板,但这通常不是一个好的做法,因为可能会有副作用。请参阅:https://stackoverflow.com/a/25609895/1054484

您还可以从字符串声明模板 - 并根据需要预先动态操作字符串。

另见:

$('select').append($('<option>').text('single'));
$('table').append($('#rowTmpl').render({name:'peter'}));
th,td {border:1px solid black;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/BorisMoore/jsrender/master/jsrender.min.js"></script>
<div style="display:none" id="statis">
  <select></select>
</div>
<script id="rowTmpl" type="text/x-jsrender">
  <tr>
    <td>{{:name}}</td>
    <td>{{include tmpl="#statis" /}}</td>
  </tr>
</script>

<table>
  <tr>
    <th>Name</th>
    <th>Stat</th>
  </tr>
</table>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-27
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多