Ember.jsにmetamorphスクリプトタグの代わりがありますか?

次のプロジェクトでEmber.jsを評価しています。これまでのところ、バインディングの仕組みが大好きですが、そのアプローチについての質問があります。ドキュメントごとに "潜在的なプロパティが変更されたときにHTMLのどの部分を更新するかを知るために、ハンドルバーは一意の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>
11

1 答え

私が知っているように、Metamorphがスクリプトタグを使用する根拠は、視覚的に何も破壊することなくDOM内にスクリプトタグを表示できることです。この事実は、フレームワークがDOM watchableの何かを作る方法を可能にするので、これを考えるときに非常に重要になります。 Emberをとても魅力的にするバインディング「魔法」のすべてを可能にします。

私は昨年、これについてIRCチャンネルの議論のいくつかを覚えています。そうした代替案は検討されましたが、スクリプトタグが勝ったのです。

8
追加された
@pangratzはすべてのブラウザでサポートされていません。また、既存のコードの多くは、他の理由で修正する必要があります。たとえば、jQuery.timeagoはMetamorphスクリプトタグのために壊れます。
追加された 著者 Salvatore Iovene,
@Andri :最初の型:nth-​​of-type を使用します。
追加された 著者 pangratz,
それは視覚的に物事に影響を及ぼし、壊すことを除いて。 first-child:nth-​​child(odd)は、これが原因で動作するため、CSS擬似クラスはありません。それは市長のことですが、CSS仕様の全機能は使用できません。
追加された 著者 Andri,