2017-04-20 45 views
2

當同一個模板中有兩個或更多個sliders並且它們具有:drag-end="myFunc(flower)"時,事件觸發每個值更改以及所有sliders。所以myFunc在所有sliders上啓動。一個模板中的事件觸發其他模板中的功能

<template> 
<div> 
    <div v-for="flower in flowers"> 
      <slider ref="slider" v-model="flower.value" :drag-end="myFunc(flower)"></slider> 
    </div> 

    <div v-for="tree in trees"> 
      <slider ref="slider" v-model="tree.value" :drag-end="myFunc(tree)"></slider> 
    </div> 
<div> 
</template> 
<script> 
const Slider = require('../controls/slider.vue'); 

module.exports = { 

    methods: { 
     myFunc: function (plant) { 
      console.log("Plant value", plant.value); 
     }, 
    }, 
    components: { 
     Slider 
    }, 
    mounted: function() { 

    }, 
    data() { 
     return { } 
    } 
} 
</script> 
+0

你能嘗試從兩個滑塊刪除'ref'屬性? –

+0

不影響。 – stsdc

回答

1

正如我在文檔看,drag-end是事件,所以後來它應該被用來作爲事件:

<div v-for="flower in flowers"> 
     <slider ref="slider" v-model="flower.value" @drag-end="myFunc(flower)"></slider> 
</div> 

<div v-for="tree in trees"> 
     <slider ref="slider" v-model="tree.value" @drag-end="myFunc(tree)"></slider> 
</div> 
+0

謝謝。要在這個週末學習vue.js文檔。再次。 – stsdc

+0

Welcome.Well這與'vue-slider-component'庫文檔有關,不直接與Vue相關。 –

0

您應該爲每個滑塊聲明不同的函數。

<template> 
<div> 
    <div v-for="flower in flowers"> 
      <slider ref="slider" v-model="flower.value" :drag-end="funcFlower(flower)"></slider> 
    </div> 

    <div v-for="tree in trees"> 
      <slider ref="slider" v-model="tree.value" :drag-end="funcTree(tree)"></slider> 
    </div> 
<div> 
</template> 
<script> 
const Slider = require('../controls/slider.vue'); 

module.exports = { 

    methods: { 
     funcFlower: function (plant) { 
      console.log("Plant value", plant.value); 
     }, 
     funcTree: function (plant) { 
      console.log("Plant value", plant.value); 
     }, 
    }, 
    components: { 
     Slider 
    }, 
    mounted: function() { 

    }, 
    data() { 
     return { } 
    } 
} 
</script> 
+0

由於某種原因不起作用。 – stsdc

+0

爲什麼會這樣?如果這可能是真的,那麼Javascript會很糟糕,因爲你必須重複自己所有的時間:)這個方法是可重用的,它接受一個參數,所以你可以在當前組件中多次使用它。 –