source

v-for를 사용하는 동적 v-모델

gigabyte 2022. 8. 29. 22:14
반응형

v-for를 사용하는 동적 v-모델

v-for 루프가 있어 각 개별 행을 어레이 개체에 동적으로 저장할 입력 행을 여러 개 뱉습니다.

v-for:

<table class="table m-0">
  <tbody>
    <tr v-for="fund in defaultFunds">
      <td>
        {{fund.name}}
        <b-input v-model="newEntries[fund.id]['id']" 
                 :value="fund.id" 
                 name="entryFund" 
                 type="text" 
                 class="d-none" 
                 :key="fund.id" />
      </td>
      <td>
        <b-input v-model="newEntries[fund.id]['amount']" 
                 name="newFundAmount" 
                 id="newFundAmount" 
                 type="text" 
                 placeholder="Amount" 
                 :key="fund.id"/>
      </td>
    </tr>
  </tbody>
</table>

원하는 배열(2행 입력 예 사용):

newEntries: [
  { id: '1', amount: '50.00' },
  { id: '2', amount: '123.45' }
],

로드하다newEntries디폴트에서는 빈 배열로 되어 있습니다.v-for에서 원하는 어레이 개체를 가져오는 방법을 모르겠습니다.위의 코드를 사용하면 다음과 같이 됩니다.

newEntries: [null, '50.00', '123.45']

내가 뭘 잘못하고 있지?

다음과 같은 것을 원하십니까?

https://jsfiddle.net/e6L5seec/

<div id="app">
   newEntries: {{ newEntries }}
   <table>
      <tr v-for="(fund, index) in defaultFunds">
         <td>{{ fund.name }}</td>
         <td>
            <input    v-model="newEntries[index].id"
               name="entryFund"
               :value="fund.id"
               type="text"  />
         </td>
         <td>
            <input  v-model="newEntries[index].amount"
               name="entryFund" 
               type="text"  />
         </td>
      </tr>
   </table>
</div>

new Vue({
  el: "#app",
  data: function() {
    return {
          defaultFunds: [
      {
        id: 0,
        name: 'fund 0'
      },
      {
        id: 1,
        name: 'fund 1'
      }
    ],
    newEntries: [{}, {}]
    }
  },
  methods: {
  }
});

언급URL : https://stackoverflow.com/questions/50510724/dynamic-v-model-with-v-for

반응형