1

テーブルにハンドルバーの条件文があり、その中にビューがあります。

条件を削除すると、ビュー テンプレートが表示されます。ビュー テンプレートを削除すると、ストレート html が表示されます。ただし、両方が存在する場合、ビュー テンプレートは表示されず、コンソールにエラーは表示されません。

<script type="text/x-handlebars" data-template-name="application">
    <table>
        <tr>
            <td>
                <button {{action 'click_me'}}>Click me</button>
            </td>
        </tr>
        {{#if controller.new_visible}}
            {{#view App.MyView}}
            <tr>
                    <td>
                        Hello!            
                    </td>
            </tr>
            {{/view}}
        {{/if}}
    </table>
</script>

私は何を間違っていますか?

4

2 に答える 2

2

これに加えて、( http://emberjs.com/guides/understanding-ember/the-view-layer/のセクション 4 から) Ember がハンドルバー ロジック ブロック ヘルパー ( 、 など) の仮想ビューを作成して{{#if}}いる{{#unless}}ように見えます。 . それらは通常のビュー階層の一部ではないため、通常のネストされた子ビューではうまく機能しません。

これに対する答えは、次の行のどこかにあると思います。

{{#if}}「またはに渡されたパスが{{#with}}変更されると、Ember は仮想ビューを自動的に再レン​​ダリングし、そのコンテンツを置き換えます。重要なことに、すべての子ビューを破棄してメモリを解放します。」(上記のリンクのセクションから)。

私の最善の推測は、{{#if}}ブロックが挿入時に再レンダリングされ、その中の「子」{{#view}}ブロックが破壊されることです。

于 2013-10-18T19:35:50.693 に答える