2017-06-06 13 views
0

こんにちは皆私は作成したカスタムコンポーネントで動作するようにv-modelを取得しようとすると少し問題があります。問題は、このコンポーネントが2つの入力で構成され、これらが変更されるたびに私は"input"イベントを発行し、それを親にある配列にバインドすることです。コンポーネント自体はその後 Vue JSカスタムコンポーネントv-model

<key-value-input v-for="n in inputs" v-model="provider.params"></key-value-input> 

...これはちょっと問題を作品

 updateData() { 
      this.$emit('input', { 
       key: this.inputData.key, 
       value: this.inputData.value 
      }) 
     } 

は、それが唯一のいくつかの1つを含むオブジェクト元空の配列からprovider.paramsを置き換えることですこのコンポーネントは実行時に複製することができるので、キーと値の組み合わせがある可能性があります。

問題は、どうすればvモード私は各サブコンポーネントからデータをフェッチし、それを単に親の配列のオブジェクトとして設定できますか?

答えて

0

私が正しくあなたを理解していれば、あなたは単に配列要素自体にv-modelを使用することができます。

<key-value-input v-for="n in inputs" v-model="provider.params[n-1]"></key-value-input> 

はここJSFiddleです:https://jsfiddle.net/2be4maxm/

+1

':[値]は、' Vモデルよりも適切であろう=放出を発行する個別のハンドラがあるので、コンポーネントテンプレートに "inputData.key"を追加します。 [この更新されたフィドル](https://jsfiddle.net/2be4maxm/1/)は 'v-model'の使い方を示しています。 –

+0

@RoyJもちろん、説明に基づいてちょっとしたモックアップをしていましたが、ちょっとしたアドホックなやり方で一緒につながっていましたが、「:value」が良いでしょう。 ;) –