vue.js - 如何将带有内容的组件传递给 Vue-grid-layout 中的 GridItem?

标签 vue.js grid-layout vuejs2 vue-component

请帮助理解如何将内容从 Layout [] 的哈希值传递给 GridItems。

我认为 GridItem.i 是 GridItem 的键值。但是如何相应地链接单元格的“内容”组件?

这种方式是行不通的:

html:

<grid-item v-for="item in layout"
               :x="item.x"
               :y="item.y"
               :w="item.w"
               :h="item.h"
               :i="item.i">
             {{item.c}}
</grid-item>

js:

let a = `<item>There I want div from component</item>`;

Vue.component('item', {
    props: [],
    template: `<div>Primer</div>
    `
});

var testLayout = [
   {"x":0,"y":0,"w":2,"h":2,"i":"1","c":"content1"},
   {"x":2,"y":0,"w":2,"h":4,"i":"2","c":"<item>There I want div from component</item>"},    
   {"x":4,"y":0,"w":2,"h":5,"i":"3","c":a},
];

var GridLayout = VueGridLayout.GridLayout;
var GridItem = VueGridLayout.GridItem;

new Vue({
    el: '#app',
    components: {
        GridLayout,
        GridItem,
    },
    data: {
        layout: testLayout,
    },
});

https://jsfiddle.net/L2oh62tp/3/

最佳答案

免责声明:我是 vue-grid-layout 的作者。

网格项使用插槽来添加内容,所以我认为 v-html 在网格项上使用时不能正常工作。就这样做吧:

<grid-item v-for="item in layout"
               :x="item.x"
               :y="item.y"
               :w="item.w"
               :h="item.h"
               :i="item.i">
             <div v-html="item.c"></div>
</grid-item>

fiddle :https://jsfiddle.net/gmsa/jw2mmmpq/1/

关于vue.js - 如何将带有内容的组件传递给 Vue-grid-layout 中的 GridItem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42379819/

相关文章:

javascript - 无法更新 Vuex 存储和检索数组

javascript - 似乎无法在语义 UI 提要摘要中调整图像大小

javascript - 在新的 vue 项目上运行 npm run serve 时出错

java - 如何设置gridlayout jpanel的大小

vue.js - vue Dynamic Slot Names Error Templates 应该只负责将状态映射到 UI

vue.js - webpack-modernizr-loader 使用 Vue CLI 3 加载器

css - 使用 grid/flex 使行之间的列大小均匀

CSS Grid Layout 数量减 1

javascript - 将 Vue.js 添加到现有的非单页应用程序

css - 使位置 : fixed behavior like sticky (for Vue2)