我有一個項目,當我點擊父母項目排序列表中的一個錨點時,子項目卡的屬性將發生變化,因此它會根據該屬性對事物進行排序。然而,這些數據似乎並沒有傳遞給孩子。我想知道在此期間建立父母子女關係時是否有什麼錯誤?Vue 2.0 Laravel 5.3父母與子女的關係
模板(項目排序列表)
<a :name="subcat.name" href="" @click.prevent="getSelectedSubcat(subcat.name)">{{subcat.name}}</a>
方法(項目排序列表)
methods: {
getSelectedSubcat(subcat){
var vm = this;
vm.selectedSubcat = subcat
}
}
當我點擊subcat.name
,但它實際存儲subcat.name
到selectedSubcat
(驗證來自Vue devtool)item-sorting-list
組件。問題是item-card
不保存它,即使我把selectedSubcat
道具
HTML(做這項工作作爲父子關係嗎?)
<item-sorting-list><item-card></item-card></item-sorting-list>
修訂項卡
export default {
props:[
'selectedSubcat'
],
data(){
return {
products:[],
}
},
mounted() {
this.getAllProducts()
},
methods: {
getAllProducts(){
var vm = this;
vm.$http.get('/getProducts').then((response)=>{
vm.products = response.data.data.products;
});
}
}
}
來自Vue devtool,項目卡包含在item-sorting-list
中,我會說這意味着他們是父母的孩子關係?但後來當我點擊item-sorting-list
中的內容並更改selectedSubcat
時,selectedSubcat
中的item-sorting-list
確實發生了變化,但selectedSubcat
中的selectedSubcat
仍未定義。對不起,我的英語不好。
UPDATE2
我注意到,我在網上找到的每一個例子是,它們在new Vue
於它,而不是任何其他成分(在我的情況item-sorting-list
)設置selectedSubcat
與el="#app"
。這很重要嗎?我覺得像:selected-subcat="selectedSubcat
在
<item-sorting-list>
<item-card :selected-subcat="selectedSubcat"></item-card>
</item-sorting-list>
無法讀取我在組件item-sorting-list
定義的selectedSubcat
,而是如果我在下面
const app = new Vue({
el: '#app',
data:{
selectedSubcat:1
}
});
設置selectedSubcat
它讀取selectedSubcat
爲1。因此,我會說item-card
不認爲item-sorting-list
作爲它的父母。但爲什麼以及如何讓它成爲item-card
的父母? [注意:但在Vue公司devtool樹它只表示item-sorting-list
不包括item-card
,item-card
點擊的item-sorting-list
左側的箭頭之後確實顯示]
感謝您的回覆!我只是試圖像你一樣綁定。但得到了Vue警告「屬性或方法」selectedSubcat「沒有在實例上定義,但在渲染過程中被引用。確保在數據選項中聲明反應數據屬性。 (在根實例中找到)'我應該將我的道具作爲'selectedSubcat'吧?或者這裏可能會出現什麼問題? – warmjaijai
@warmjaijai你應該在'item-sorting-list'中有'selectedSubcat'作爲[data](https://vuejs.org/v2/api/#data)。 – Saurabh
是的,我有。但如果我將selectedSubcat傳遞給子節點,並且沒有:selected-subcat = selectedSubcat意味着將selected-subcat設置爲子節點中selectedSubcat的值? (順便說一句,你如何在代碼字體的評論字嗎?) – warmjaijai