Vue.js v-component 在桌子上

Posted

技术标签:

【中文标题】Vue.js v-component 在桌子上【英文标题】:Vue.js v-component on table 【发布时间】:2015-09-23 12:39:15 【问题描述】:

在 Vue.js 文档中,他们说在表格中使用组件时必须使用 v-component 而不是直接的 component-tag。但这不起作用: 您是否有任何解决方法 - 即使是 CSS 格式 - 或修复?

@extends('app')

@section('content')
    <div class="table-responsive" id="vueTable">
        <table class="table-striped">
            <thead>
                <td class="table-cell"><strong>Aktion</strong></td>
            </thead>
            <tr v-component="members" class="success" v-repeat="members" inline-template>
                <td>@ $data | json </td>
            </tr>
        </table>
    </div>
@endsection

@section('footer')
    <script src="/js/vue.js"></script>
    <script>
        var v = new Vue(
            el: '#vueTable',
            data: 
                members: [
                    prename: 'Deniz',
                    lastname: 'Adanc'
                ]
            ,
            components: 
                members: 
                    template: ''
                
            
        );
    </script>
@endsection

【问题讨论】:

如果您使用的是内联模板,您不需要从成员组件定义中删除模板属性吗?另外,你能在 jsfiddle 中重现这个问题吗? 【参考方案1】:

Evan 再次在 1.0 中进行了重大更改。经过多次失败的尝试后,这是 html/javascript 的组合,当我尝试在表中包含自定义组件(这又是另一个父组件)时,它对我有用:

HTML 文件:

    <script id="comments-template" type="text/x-template">    
        <table>
            <tbody>
                <tr is="my-comment" :data="comment" v-for="comment in comments">
                </tr>
            </tbody>
        </table>
    </script>

    <script id="comment-template" type="text/x-template">
        <tr>
            <td>comment</td>
        </tr>
    </script>

JavaScript sn-p:

    Vue.component('my-comment', 
        template: '#comment-template',
        props: [
            'data',        
        ],
        data: function() 
            return    
                comment: '',
            ;
        ,
        ready: function()         
            this.comment = this.data.comment;
        
        ...
    );

    Vue.component('my-comments', 
        template: '#comments-template'
        ...
    );

这里有两个组件:my-comments(表)和my-comment(表中的一行/行)。来自v-for 循环的comment 作为data 属性传递,并在my-comment 内部重新映射到my-comment (this.comment = this.data.comment) 的实际数据。

它看起来相当丑陋且不完全直观,但至少它有效。

【讨论】:

【参考方案2】:

我一直在努力修复这个问题,直到我意识到我没有安装最新的 Vue.js。

很高兴,这个问题被发现是一个bug,并且在 Vue.js 的 12.6 版本中得到了修复

你可以下载最新的here 或者直接去 vuejs.org

【讨论】:

我想问题出在 Vuejs 1.0.0 我想这将保证一个新问题提到1.0.0

以上是关于Vue.js v-component 在桌子上的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js 开源项目排行榜

前端快来!7月份热门的Vue.js项目全在这了

前端快来!最火的 Vue.js 开源项目出炉

在 vue.js 中更改复杂的计算对象

在 vue.js 组件中声明 typescript 接口道具

从Vue.js源码角度再看数据绑定