2017-01-31 6 views
0

AttendeesというオブジェクトとTempAttendeeというオブジェクトがあります。フォームはTempAttendeeにバインドされ、ユーザーがフォームを送信するとTempAttendeeが入力され、Attendeesにプッシュされます。Vue.js - 追跡せずにオブジェクトにプッシュ

フォームにさらに変更を加えると、反応のためにAttendeesオブジェクト内のその出席者が編集されるという問題があります。どのように私はそれを回避することができますか?

<template> 
    <div> 
     <ul class="attendeeEditor"> 
      <li class="attendeeEditor__attendee" v-for="(attendee, index) in attendees"> 
       <span class="attendeeEditor__field">{{ attendee.email }}</span> 
      </li> 
      <li class="attendeeEditor__attendee attendeeEditor__form">    
       <input v-on:keydown.enter="addAttendee" class="attendeeEditor__field" placeholder="Email Address..." type="email" v-model="tempAttendee.email" required /> 
      </li> 
     </ul> 
    </div> 
</template> 

<script> 
    export default { 
     name: 'attendee-picker', 
     data: function() { 
      return { 
       attendees: {}, 
       tempAttendee: { 
        email: "" 
       } 
      } 
     }, 
     methods: { 
      addAttendee: function(event) { 
       this.attendees.push(this.tempAttendee); 
      } 
     } 
    } 
</script> 

答えて

1

プッシュコピーとおそらくテンポラリを消去します。

methods: { 
      addAttendee: function(event) { 
       this.attendees.push(Object.assign({}, this.tempAttendee)); 
       this.tempAttendee = { email: '' } 
      } 
+0

私のコードにあなたの提案をどのように適用するのか分かりませんが、私はそれを含めるように質問を更新しました。私は出席者のコピーを 'tempAttendee'オブジェクトに作成するのではなく、' tempAttendee'を 'Atttendees'オブジェクトに追加します。 – KeironLowe

+0

あなたのコードの前には明確ではなかった。次に、tempのコピーを出席者にプッシュ –

+1

ああそう、ちょうど 'Object.assign'私は行方不明だった、あなたの助けをありがとう! – KeironLowe

関連する問題