0

Ember.View.appendTo("#container")ビューのコンテナdivを指定できるようにするという素晴らしいメソッドがあります。ただし、ルーターとを使用すると.connectOutlet method、ビューのインスタンスが規則に基づいて自動的に作成され、デフォルトでページの本文要素に追加されます。ビューのクラス定義を構成して、作成時に目的の内に収まるようにする方法はありますか#container?これが私の見解です:

Jimux.BuildsView = Em.View.extend({
  templateName: 'builds',
  appendTo: '#jimux-header', #this was just a guess and did not work. but does some propery like this exist for the view?
  tagName: 'div',
  listVisible: true,
  ...

この質問をする別の方法は、Emberルーターにdom内の特定のアイテムにビューを追加するように指示するにはどうすればよいですか?デフォルトでは、ルーターはビューを本体に追加します。

そしてここにルータービットがあります:

# Connect builds controller to builds view
router.get('applicationController').connectOutlet("builds","builds", Jimux.buildsController)

明確にするために、Emberアプリ全体をコンテナーに入れたくありません。私のアプリケーションにはいくつかのビューがあり、それらのほとんどは体の中で直接問題ありません。"#application-header"しかし、この質問で言及されているようなカップルがあり、それをdiv内に配置したいと思います。

4

3 に答える 3

1

アプリケーション オブジェクトのルート要素を指定できます。

window.App = Ember.Application.create({
    rootElement: '#ember-app'
});

編集:

あなたの質問を読み直して、名前付きアウトレットを調べる必要があると思うので、次のようなことができます:

<div id="application-header">
    {{outlet builds}}
</div>

{{outlet}}
于 2012-11-26T04:32:30.173 に答える
1

あなたの質問を理解した後、私は同じ問題を抱えていたことを覚えています。また、Ember コードを調べた後でも、これを行う方法が見つかりませんでした。しかし、後で私はそれが正当な目的のためだけであることを理解しました. これを達成できるハンドルバーをすでに見つけているかもしれません。追加する ID をビューに与えると、アプリケーションが制限され、ember の使用全体が役に立たなくなります。質問にお答えします。私が知る限り、HTML の div 要素に口ひげテンプレートを追加することができます。

<div id="jimux-header">
{{view Jimux.BuildsView}}
</div>

このようにして、必要な場所で何度でも Jimux.BuildsView を使用できます。あなたが言わなければならないエンバーの美しさ...

于 2012-11-26T06:56:52.590 に答える
0

rootElementアプリケーション オブジェクトを追加するだけです。

var App = Ember.Application.create({
    rootElement: '#container'
});
于 2012-11-26T04:31:33.997 に答える