親コンポーネントをレンダリングする方法、ページの一部のリストにコントラクトリストを表示する方法、ユーザーがそれらのコンポーネントの1つをクリックしたときに、特定の契約の詳細をページの他の部分に表示します。それは、vue.jsコンポーネントをレンダリングしてデータを渡す
Vue.component('manage-template', {
template: '#manage-contracts-template'
});
Vue.component('view-contract', {
template: '#view-contract-template',
props: ['show_contract'],
data: function() {
return {
name: ''
}
},
methods: {
showContract: function(contract) {
return this.name = contract.name
}
}
});
Vue.http.headers.common['X-CSRF-Token'] = $('meta[name="csrf-token"]').attr('content');
var contractsResource = Vue.resource('/all_contracts{/id}.json');
var contracts = new Vue({
el: '#contracts_area',
data: {
currentView: 'manage-template',
contractsAry: [],
errors: {}
},
mounted: function() {
var that = this;
contractsResource.get().then(
function(res) {
that.contractsAry = res.data;
}
)
},
methods: {
showContract: function(contract) {
this.currentView = 'view-contract'
}
}
});
ユーザーが.filter-セクションで任意の契約項目をクリックしたときになるように基本的に私はそれが欲しい:
#contracts_area
.filter-section
ul
li.filter-item v-for="contract in contractsAry" :key="contract.id" @click="showContract(contract)"
| {{ contract.name }}
.display-section
component :is="currentView" transition="fade" transition-mode="out-in"
script type="text/x-template" id="manage-contracts-template"
div
h1 Blank when page is newly loaded for now
script type="text/x-template" id="view-contract-template"
div :apply_contract="showContract"
h1#display-item__name v-name="name"
ではJavaScript:ここ
は私のスリムなファイルです.display-sectionにその契約のデータが表示されます。どうすればこれを達成できますか?
完璧、ありがとうございました!そして、私がVueを使い始めたばかりのように、深い答え、巨大な助けをくれてありがとう。 – asalgan