javascript - vuejs如何v-if的用法
ringa_lee
ringa_lee 2017-04-11 12:59:58
[JavaScript讨论组]

刚开始接解vuejs,现在有个问题是这样的,我想实现一个表格中的数据查看的时候是普通的text数据,一旦点击每一行的编辑按钮时,这一行的数据以input输入框来实现,
我初步的设想是这样的:给这一列数据的data添加一个editmode属性,一旦点击编辑按钮后改成editmode为true,然后v-if根据这个值来决定输出样式:

id name pass 操作

然后在方法中

            edit: function(data){
                //alert(data.editmode);
                data.editmode = true;
            }

我可以看到每次这样子做后,editmode确实改变成了true,但是那一行数据并没有变成input模式,求教实现方法。

ringa_lee
ringa_lee

ringa_lee

全部回复(3)
怪我咯

代码是没有错的,我试了一下可以跑起来:
https://jsbin.com/rajeqo/edit...

我怀疑问题出在你的 apidata 这个数据里面没有 editmode 这个属性. 导致在 edit 里面赋值 data.editmode Vue 并没有去监听这个变化。所以你要做的就是 默认让 apidata 里面的数据项都有一个默认的 editmode 属性

阿神

楼主麻烦贴下data代码 以上代码我看了下是没有错误的

天蓬老师

为何要那么麻烦写

<p v-if="data.editmode"><input v-model="data.name"></p>
<p v-else>{{data.name}}</p>
                            

直接用input 展示数据就好 了 ,使用css 将input的样式去掉,顺带禁用input的编辑,
编辑时候在恢复回来不就得了

        <table>
            <tr>
                <td>姓名:</td>
                <td> 
                    <input type="text" :disabled="isEdi" :class="{ 'ediClass' : isEdi }" v-model="text" >
                </td>
                <td>
                    <button @click=" saveOrEdi "> {{ isEdi ? '保存' : '编辑' }}  </button>
                </td>
            </tr>
        </table>
        <style>
            input{  border: none;  outline: none;  background: rgba(255,255,255,0);  }
            .ediClass{  border:1px #e9e9e9 solid;  }
        </style>

        <script>
        
              new Vue({
                        el:"body",
                        data: {
                            isEdi: false,
                            text: '某某'
                        },
                        methods: {
                            saveOrEdi:function(){
                                if(this.isEdi){
        //                            编辑状态下 执行保存
                                ....
                                    this.$set("isEdi",false)
                                }else{
        //                            非编辑状态下 编辑
                                    this.$set("isEdi",true)
                                }
                            }
                        }
                    })

        </script>

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号