のプロパティ「PROPERTY_NAME」を読み取ることができませんこれが今の私のコードです:https://jsfiddle.net/5phq111c/5/は未定義
<tbody v-for="row in rows" :key="row.product_id">
<tr>
<td>
<select @change="selected" v-model="row.product_id" class="form-control" name="product_id" id="product_id">
<option value="">Select Product</option>
<option v-for="item in items" :value="item.id" v-text="item.product_name"></option>
</select>
</td>
<td>
<textarea type="text" v-model="product.product_details" name="product_details" id="product_details" class="form-control" rows="1" placeholder="Product Details">
</textarea>
</td>
<td>
<input v-model.number="product.product_sellPrice" type="number" step="any" class="form-control" name="rate" id="rate" placeholder="Rate">
</td>
export default{
data() {
return {
rows: [{
product_id: '',
product_details: '',
product_sellPrice: '',
}],
},
methods: {
addrow: function (event) {
event.preventDefault();
this.rows.push({
product_id: '',
product_details: '',
product_sellPrice: '',
});
},
selected(e){
var id = this.row.product_id;
console.log(id);
axios.get('/estimate/product/' + id)
.then((response)=>{
this.product = '';
this.product = response.data;
})
.catch((error) => {
console.log(error);
});
},
}
私が選択したのproduct_idを取得し、選択した製品の値を取得するためのaxios要求を送信します。私は行とproduct_idをバインドしました。 Rowオブジェクトで選択された値を取得していますが、row.product_idでリクエストを送信しているときにエラーが発生しました。定義されていない 'product_id'プロパティを読み取れません。問題はどこだ?
さて、私は新しい行を追加すると新しい行が前の行のデータで満たされ、単一の行を変更すると他のすべての行のデータが変更されます –
これは別の問題です。空の文字列に等しい 'product_id'を持つオブジェクトであり、これは' v-for'によってレンダリングされた各要素の ':key'としてバインドされています。しかし、すべてのキーが同じ値であるため、要素はそのキーを持つ最初のインスタンスからのデータでレンダリングされます。 'key'属性には* unique *と* unchanging *値を指定する必要があります。 – thanksd
その場合、ここで一意のキーを実装するにはどうすればよいですか?そのキーを持つすべての行を選択して値を見つけることができるようにします。 "rows [0] .quantity"これのように。 –