私はVuejsを初めて使用しています。私は削除確認モーダルのためのvuejsコンポーネントを書いています。パラメータループ内のVuejsコンポーネントの可変パラメータへのアクセス
@foreach ($categories as $category)
<tr data-id="{{ $category->id }}">
<td>{{ $category->id }}</td>
<td>{{ $category->name }}</td>
<td id="actions">
<a href="{{ url('admin/category/' . $category->id . '/get') }}">Show</a>
<a href="{{ url('admin/category/' . $category->id . '/edit') }}">Edit</a>
<a href="#" data-toggle="modal" data-target="#confirmDeleteModal">Delete</a>
<confirm-delete-modal item="category" id="{{ $category->id }}" name="{{ $category->name }}"></confirm-delete-modal>
</td>
</tr>
@endforeach
:
<template id="bs-modal">
<div class="modal fade" id="confirmDeleteModal" tabindex="-1"
role="dialog" aria-labelledby="confirmDeleteModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title"
id="confirmDeleteModalLabel">
Delete {{ item | capitalize }}
</h4>
</div>
<div class="modal-body">
Are you sure about deleting the {{ name }} {{ item }} ?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default"
data-dismiss="modal">No</button>
<button type="button" class="btn btn-primary"
v-on:click="deleteItem(id)">Yes</button>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
}
},
props: ['item', 'name', 'id'],
methods: {
deleteItem : function(id) {
var url = window.location.href;
var baseUrl = url.substring(0,
url.indexOf('/', url.indexOf('://') + 3) + 1);
var adminPosition = url.indexOf('admin/') + 6;
var entity = url.substring(adminPosition,
url.indexOf('/', adminPosition));
this.$http.delete(baseUrl + "admin/" + entity + "/" + id).then((response) => {
if (response.body.status_code == '200') {
// Calling just modal('hide') does not hide the backdrop
// There should be a better solution for this
$("#confirmDeleteModal").modal("hide");
$("#confirmDeleteModal").hide();
$('.modal-backdrop').hide();
$("body").removeClass("modal-open");
$("tr[data-id=" + id + "]").remove();
// Display success message
}
});
}
},
filters: {
capitalize: function (value) {
if (!value) {
return '';
}
value = value.toString();
return value.charAt(0).toUpperCase() + value.slice(1);
}
}
}
</script>
そして、ここでは、私は、このコンポーネントを呼び出す私のブレードテンプレート(私はlaravel 5.3を使用しています)です:私はここに私のコードで、レコードのリスト内にこれを呼び出します私はコンポーネントに渡す変数とVueのdevtoolsに従って、コンポーネントは各レコードの正しい値を取得しますが、私はコードを実行すると、常にリストの最初のレコードのパラメータを取得します。
何か不足していますか?
私は「[ヴューが警告]取得:プロパティまたはメソッド 『価値の-PARAMは、』インスタンスで定義されたが、中に参照されていませんレンダリングする。データオプションで反応的なデータプロパティを宣言してください。エラー –