我有一個Vue組件,它具有vue開關元素。當組件被加載時,開關必須根據數據設置爲ON或OFF。這當前正在'mounted()'方法中發生。然後,當切換開關時,它需要進行一次API調用,以告知數據庫新的狀態。這是目前正在發生的'手錶'方法。如何在Vue開關更改上觸發事件
問題是因爲我正在'看'開關,當數據在掛載時被設置時,API調用會運行。因此,如果它設置爲ON並且導航到組件,則mounted()方法將開關設置爲ON,但它也調用切換API方法將其關閉。因此,該視圖已開啓,但數據顯示它已關閉。
我試圖更改API事件,以便它發生在單擊方法上,但這不起作用,因爲它不能識別點擊並且該函數從不運行。
我該如何使API調用僅在點擊交換機時進行?
HTML
<switcher size="lg" color="green" open-name="ON" close-name="OFF" v-model="toggle"></switcher>
VUE
data: function() {
return {
toggle: false,
noAvailalableMonitoring: false
}
},
computed: {
report() { return this.$store.getters.currentReport },
isBeingMonitored() { return this.$store.getters.isBeingMonitored },
availableMonitoring() { return this.$store.getters.checkAvailableMonitoring }
},
mounted() {
this.toggle = this.isBeingMonitored;
},
watch: {
toggle: function() {
if(this.availableMonitoring) {
let dto = {
reportToken: this.report.reportToken,
version: this.report.version
}
this.$store.dispatch('TOGGLE_MONITORING', dto).then(response => {
}, error => {
console.log("Failed.")
})
} else {
this.toggle = false;
this.noAvailalableMonitoring = true;
}
}
}
「我曾試圖使其發生在點擊的方法來改變API事件,但這不起作用」哪裏是你的企圖呢?點擊應該工作正常。 –
我把它拿出來,因爲它不起作用,但我將切換手錶改爲了方法,並向切換元素添加了@ click =「toggleMonitoring()」,但方法在點擊時從未運行。 – Linx