首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >I-select更改事件的iview问题

I-select更改事件的iview问题
EN

Stack Overflow用户
提问于 2018-10-16 01:30:09
回答 2查看 956关注 0票数 1

http://jsfiddle.net/gx1jyq9k/6/

代码语言:javascript
复制
<div id="app">
  <div class="tab">
    <a href="javascript:void(0);" @click="tab=0">TAB1</a>
    <a href="javascript:void(0);" @click="tab=1">TAB2</a>
  </div>
  <div class="tab-panels">
    <template v-if="tab==0">
     <i-select v-model="sharp">
       <i-option :value="0">Circle</i-option>
       <i-option :value="1">Square</i-option>
     </i-select>
    </template>
    <template v-if="tab==1">
     <i-select v-model="color" @on-change="changeColor">
       <i-option value="red">Red</i-option>
       <i-option value="blue">Blue</i-option>
     </i-select>
    </template>
  </div>
</div>

var app = new Vue({
    el:"#app",
    data:{
    tab:0,
    sharp:0,
    color:''
       },
    methods:{
      changeColor:function(){
        alert('Color is changed!');
         }
       }
    })

当我点击标签‘tab 2’,为什么触发事件'changeColor',我认为组件重用所造成的问题,但我如何解决它,谁能帮助我如何做,非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-16 01:46:02

正如您所猜测的,问题在于组件的重用。

可以将key添加到i-select中以防止出现此问题。

代码语言:javascript
复制
<div id="app">
  <div class="tab">
    <a href="javascript:void(0);" @click="tab=0">TAB1</a>
    <a href="javascript:void(0);" @click="tab=1">TAB2</a>
  </div>
  <div class="tab-panels">
   <template v-if="tab==0">
       <i-select v-model="sharp" key="tab1">
         <i-option :value="0">Circle</i-option>
         <i-option :value="1">Square</i-option>
       </i-select>
   </template>
   <template v-if="tab==1">
       <i-select v-model="color" @on-change="changeColor" key="tab2">
           <i-option value="red">Red</i-option>
           <i-option value="blue">Blue</i-option>
       </i-select>
   </template>
  </div>
</div>

这里的演示

票数 1
EN

Stack Overflow用户

发布于 2018-10-16 01:48:29

代码语言:javascript
复制
 <i-option :value="red">Red</i-option>
 <i-option :value="blue">Blue</i-option>

var app = new Vue({
    el:"#app",
    data:{
    tab:0,
    sharp:0,
    color:'red'
       },
    methods:{
      changeColor:function(){
        alert('Color is changed!');
         }
       }
    })

尝试添加默认值的颜色!

请在value=“红色”和value=“蓝色”之前加上":“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52826738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档