web-dev-qa-db-ja.com

DivをラップせずにEmber.jsビュー?

アプリに3列のレイアウトがあります。セマンティックUIを使用しています。したがって、レイアウトは次のとおりです。

<div class='ui celled grid'>
  <div class='left column'>...</div>
  <div class='middle column'>...</div>
  <div class='right column'>...</div>
</div>

だから、簡単です。

私のapplication.hbsそれは単に:

<div class='ui celled grid'>
  <div class='left column'><!-- menu --></div>
  {{outlet}}
</div>

そして、他の2つの列は私のサブコントローラー/テンプレートにあります。そして、これはViewが必要になるまで正常に機能します。 Viewが必要な場合、EmberはHTMLレイアウトを次のようにします。

<div class='ui celled grid'>
  <div class='left column'><!-- menu --></div>
  <div class='ember-view'>
    <div class='middle column'><!-- content --></div>
    <div class='right column'><!-- content --></div>
  </div>
</div>

そしてラッピング<div class='ember-view'>私のレイアウトを壊します。常にViewが必要なわけではないので、Viewの有無にかかわらずHTMLを同じにする方法が必要です。

この時点で、2つの解決策があります。何らかの方法でレイアウトを作り直す必要があります(まだ解決していません)。または、ラッピングdivを取り除くことができます。

しかし、ラッピングdivを取り除くことは可能ですか?私はこれを試しました:

export default Ember.View.extend({
  tagName: null
});

しかし、それはうまくいきません。 spanも試しましたが、それでもレイアウトが壊れます。

何か案は?

ありがとう。

24
Johnny Hall

使ってみてください

tagName:''

ビューのtagNameの値としての空の文字列。

更新:これをember.jsの寄稿者に知らせたとき、彼らはからのビューを継承することを提案しました

Ember._MetamorphView

https://github.com/emberjs/ember.js/pull/479

43
Hrishi