1

まずお詫び申し上げます: 私は ember.js を初めて使用し、これまで苦労してきました。

私は非常に基本的なアプリを作成しており、これをメインガイドとして使用しています: http://trek.github.com/

現在の私の最大の問題は、ビュー、特にレンダリングされた HTML とそれが DOM のどこに表示されるかをどう扱うかを考え出すことです。少なくとも現在の私のアプリでは、DOM 要素が作成されてページに挿入されますが、/body の直前に表示されます。したがって、すべてがメイン サイト デザインのフッターの下に読み込まれます。

スクリプト テンプレートの配置がページに対してどこにあるか、またはそのようなことは問題ではないようです??

ビューを既存のコンテナ div などにレンダリングする方法はありますか? 私はこれについて間違って考えていますか?私は、テンプレートを設定した jsRender を使用することに慣れていましたが、通常はメモリ内の文字列にレンダリングされ、それを $('#containerDiv').html(myRenderedHtmlFromATemplate); のような既存のコンテナーに挿入する必要がありました。

これに関するヘルプまたはガイダンスをありがとう!

4

3 に答える 3

3

Ember は、イベントの伝播に依存できるように、ビューを DOM で階層化する必要があります。<div class="ember-application">が注入され、すべてのビューがその中にレンダリングされることに気付いたでしょう。

アプリケーションを作成するときにrootElementを指定できます。アプリケーションはその要素内に作成され、残りの DOM は変更されません。それを指定しないと、観察したようrootElementに、Ember は自分自身を直前に挿入します。</body>

例:

window.MyApp = Ember.Application.create({
  rootElement: "#containerDiv"
});
于 2012-12-19T00:40:49.763 に答える
0

コードを見なければ、正確に何が起こっているのか完全には明らかではありませんが、アウトレットについて何も言及していないので、それが問題であると思います.

アウトレットでこの URL をチェックしてください: http://emberjs.com/guides/outlets/

于 2012-12-18T21:56:05.223 に答える
0

tuxedo25 には最適なソリューションがあります。を使用している場合はStateManager、次のものも使用できます。

App.StateManager = Ember.StateManager.create({
    rootElement: '.content',
    initialState: 'initial',
    initial: Ember.ViewState.create({
        route: 'initial',
        view: Ember.View.create({ templateName: 'initial' })
    })
});
于 2012-12-20T15:32:49.040 に答える