vue.js - Vue中如何在根组件上传递数据
问题描述
如何将 传递page_id
给Sidebar
组件方法highlightNode()
,因为我想突出显示新添加的项目。我当前的代码是页面 id 未定义。
这是我的代码和结构。
我的根组件是Sidebar.vue
<template>
<div>
<ul>
<li v-for="page in pages">
<div :class="{ 'highlight': highlightedNode == page.id }">
<router-link :to="'/view/' + page.id" @click.native="highlightNode(page.id)">
<span v-title="page.title"></span>
</router-link>
</div>
</li>
</ul>
</div>
</template>
export default {
data () {
return {
pages: [],
highlightedNode: null
}
},
mounted() {
this.getPages()
this.$root.$refs.Sidebar = this
},
methods: {
getPages() {
axios.get('/get-pages').then(response => {
this.pages = response.data
});
},
highlightNode(id) {
this.highlightedNode = id
},
}
}
我添加新的页面组件AddNewPage.vue
<template>
<div>
<div class="main-header">
<div class="page-title">
<input type="text" v-model="page.title" class="form-control">
</div>
</div>
<div class="main-footer text-right">
<button class="btn btn-success btn-sm" @click="saveChanges()">Save and Publish</button>
</div>
</div>
</template>
export default {
data () {
return {
page: {
title: null,
},
}
},
mounted() {
//
},
methods: {
saveChanges() {
axios.post('/store-new-filter', this.page)
.then(response => {
const id = response.data.id // return page id
this.$root.$refs.Sidebar.highlightNode(id) // <-- this line, I want to pass page id to hightlight the newly added page.
})
.catch( error => {
})
},
}
}
或任何替代方式来实现我的预期输出。
提前致谢。
解决方案
推荐阅读
- prolog - 添加到 Prolog 中的列表列表
- java - 将 CURL 转换为 JAVA 以使用数据进行 PUT 请求
- java - SessionFactory 在 Spring 4 和 Hibernate 4 中为空
- xamarin - Rider 2018.1 iOS 模拟器在构建后未运行
- ios - UIAlertController 在模型类中不起作用
- docker - What does Docker use to host/run web applications?
- android - Android : Galaxy Nexus GT-I9250 在我的布局上崩溃
- php - 将值从锚点发送到弹出窗口
- javascript - Angular: POST http://localhost:4200/undefined/authentication/register 0 () 错误
- python - 使用 Pandas 将多行转换为单行