我正在为下一个项目评估Ember.js。到目前为止,我很喜欢约束机制,但对这种方法有疑问。根据文档“为了知道在底层属性发生变化时要更新HTML的哪一部分,Handlebars将插入带有唯一ID的标记元素。”我可以忍受这些标签,但它们非常分散注意力(见下面的例子)。这种方法的基本原理是在任何地方讨论的。是否考虑过任何替代方案?
<tbody>
<script id="metamorph-0-start" type="text/x-placeholder"></script>
<script id="metamorph-1-start" type="text/x-placeholder"></script>
<tr>
<td class="quote-name">
<script id="metamorph-7-start" type="text/x-placeholder"></script>
Apple
<script id="metamorph-7-end" type="text/x-placeholder"></script>
</td>
<td class="quote-code">...</td>
<td class="quote-value">...</td>
<td class="quote-bid">...</td>
<td class="quote-offer">...</td>
</tr>
...
</tbody>
答案 0 :(得分:8)
据我所知,Metamorph使用脚本标签的基本原理是脚本标签可以在任何地方出现在DOM中,而不会在视觉上破坏任何内容。当你考虑它时,这个事实变得非常重要,因为它允许一种方法来在框架中观察DOM中的任何内容。从而实现了使Ember如此伟大的所有绑定“魔力”。
去年早些时候,我确实记得IRC频道上有关此问题的一些讨论,并考虑了其他选择,但脚本标签已经获胜。