2017-03-04 12 views
0

v-forディレクティブで表示される要素がいくつかあります。これらの各要素には「削除」ボタンがあります。私はそれをクリックすると、私はstate.items.splice(payload.id, 1);コードと配列から要素を削除します。私はまた、要素が破壊されたことをサーバーに示す隠された入力が必要です。 Rubyで on RailsのそれはVue.js:v-fromから要素を削除するときに "_delete"要素を追加

<input type="hidden" name="order[line_items_attributes][<ID>][_delete]" value="1" /> 

どのように私は、この要素を追加することができますか?

+0

あなたは、なぜもう少し説明できます:あなたが見ることができるように

<ul> <li v-for="item in items"> {{ item.name }} <a href="#" @click.prevent="deleteItem(item)">Delete</a> </li> </ul> 

は、あなたがあなたのコンポーネントに定義する必要がありますdeleteItem()メソッドを使用することができます。

すると、次のテンプレートを持っている想像してみてあなたは隠された入力を必要とし、どのように役立つでしょうか? – Saurabh

+0

バックエンドアプリはRuby on Railsで動作しています。ネストされたフォーム要素には特別な動作があります。私が編集している主なフォームは、ショップのOrderモデルです。注文はカートに多くのアイテムがあります。 Itemsはネストされたモデルです。そしてカートからいくつかのアイテムを取り除くには、そのアイテムのリクエストで "_destroy"属性を送る必要があります。しかし、どのようにアイテムを状態から削除するための情報があれば、それを行うには? –

+0

これは 'state.items.splice(payload.id、1);'と同じ場所で行うことができます。これに適合しない場合は、関連するコードを追加してください。 – Saurabh

答えて

0

私はあなたの質問をよく理解しているかどうかわかりませんが、とにかく私の回答です。

export default { 
    data() { 
     return { 
      items: [ 
       { 
        id: 1, 
        name: 'First Item' 
       }, 
       { 
        id: 2, 
        name: 'Second Item' 
       } 
      ] 
     } 
    }, 
    methods: { 
     deleteItem (item) { 
      this.$http({ 
       url: '/api/items/' + item.id, 
       method: 'delete' 
      }).then(response => { 
       // Do something here if you want 
      }, response => { 
       // Or here if you want to handle an error 
      }) 

      let index = this.items.indexOf(item) 
      this.items.splice(index, 1); 
     } 

    } 
} 
関連する問題