我正在嘗試使用Vue2爲頁面編輯器功能。 在頁面上有一個'可編輯'的過濾器。它接收content_id。使用這個content_id,我們應該從根Vue實例接收數據(例如pageContent.mainTitle)。根據editModeOn根變量,我們應該渲染組件或僅輸出合適的(例如<editable content="mainTitle" />
或mainTitle項中的內容)。有條件呈現:組件或數據
骨架HTML的:
<div id="root">
{{ 'mainContent' | editable }}
<label class="checkbox">
<input type="checkbox" v-model="editModeOn">
Switch edit mode
</label>
</div>
而且一個Vue公司的實例:
new Vue({
el: '#root',
data: {
editModeOn: true,
pageContent: {
mainTitle: "Test title",
mainContent: "Lorem ipsum dolor sit amet, consectetur adipisicing elit. At, et!"
}
},
filters: {
editable(contentId) {
if (!this.editModeOn) {
return `<editable content="{{ this.pageContent[contentId] }}" />`;
} else {
return this.pageContent[contentId];
}
}
}
});
爲什麼我想要實現使用過濾器功能的原因是因爲當編輯模式中,禁止我不要的」 t想要製作任何類似span或div的包裝器(因爲它作爲任何組件的根實例都是必需的)。
也許這是一個更好的方式來實現nesessary功能,但我沒有找到它。有沒有人有一個想法如何使這項工作?謝謝!
是的,這會的工作,但我試圖讓使用簡單組件(如'<編輯的content_id = 「MAINTITLE」/>'或'{{ '搜索Maincontent' 的東西|編輯} }'並且不要添加插入該組件的巨大構造。 – bashkovpd
v-if和v-else不需要匹配標籤嗎? –
@RichardMatsen沒有。https://codepen.io/Kradek/pen/EwZXGK?editors=1010 – Bert