2017-07-09 6 views
0

例(jsfiddle): 私は、ファイル#2に問題があるファイル#1VueJs。 1つを<slot>に渡すことは可能ですか?

<component-b> 
    <component-a slot="... ? ..."></component-a> 
</component-b> 

// <component-c>

においてスロット '2' に<component-a>を渡す習慣。私はどのように<component-a>から<component-b>までをスロットの 'two'に渡すことができるのか分かりません。

//ファイル#2<slot>は(他のスロットのソースであるためにそれは不可能です<component-b>

<div> 
    <components-c> 
     // I was thinking to do it this way, 
     // but as I see It doesn't work: 
     // <slot name='one' slot='one'></slot> 
     // <slot name='two' slot='two'></slot> 
    </components-c> 
</div> 

//ファイル#3

<components-c> 
    <div id='one'> 
     <slot name="one"></slot> 
    </div> 
    <div id='two'> 
     <slot name="two"></slot> 
    </div> 
</components-c> 
+0

[fiddle](http://jsfiddle.net)を設定できますか?あなたがしようとしていることに従うのはちょっと難しいです。 [this](http://jsfiddle.net/df4Lnuw6/149/)のようなスロット名にバインドすることができます。 –

+0

@DecadeMoon Ohh ...申し訳ありませんが、私はどのように 'fiddle'ファイル/ファイル設定を設定するのかはしません。私はそれらを使って簡単な例を得ることができますが、もっと必要なものがあれば、それではどうやって仕事をするのか分かりません。今あなたの模範を見ていきます。 –

+0

あなたは正確に何をしようとしていますか?あなたは動的に何かをレンダリングするか(私のフィドルのように)、または特定のスロットでレンダリングされるべきコンポーネントを動的に指定しようとしていますか? –

答えて

0

<component-c>を持ちます親コンポーネント内のslot属性を使用して)。これを可能にするためには、単一の要素(すなわち、VNode)が、ノードツリーを上っていくときにレンダリングされるスロットの値が複数ある必要があります。

これが許可されていません。

<slot slot="one"></slot> 

あなたが最初にこのようなdivの中で、あなたのスロットを包む場合、それは動作します:

<div slot="one"> 
    <slot name="one"></slot> 
</div> 

はここにあなたの更新の例でfiddleです。

+0

あなたの決定は、 'div'タグの 'component-b'に 'slots'をラップすることでした。私が理解するように、それを行う方法は他にありません。 –

+0

最初は私はそれが悪いと思っていたこのようにするアイデアが、私は今見ているように私は思っていたようにそれほど悪くはないように見える。私のHTMLはきれいに見えますが、余分なラップページビューにダメージを与えませんでした。私が見ているように、私は目的に達し、代わりに異なるコンポーネントにコードをカプセル化して、すべてのロジックを1つに実現しました。 –

関連する問題