事件 VueJs 上的道具组件
Props component on event VueJs
我正在尝试在最后一次触发事件时访问组件的道具。此组件来自 http://element.eleme.io/#/en-US/component/switch.
它有name、value等几个props。我希望能够在触发更改时获取开关的名称或值。
更重要的是,如何访问触发更改事件的开关的任何道具?
我试过了,但我没有定义。
<div v-for="organizer in organizers>
<el-switch @change="changeOrganizers($event.target.name, $event.target.value)" :name="organizer.name">
</el-switch>
</div>
var Main = {
data() {
return {
value1: true,
}
},
methods : {
changeSwitch(name) {
console.log(name)
}
}
};
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
http://jsfiddle.net/2hr6y79h/2/
谢谢
解决方案
<div v-for="organizer in organizers>
<el-switch @change="changeOrganizers()" :name="organizer.name">
</el-switch>
</div>
var Main = {
data() {
return {
value1: true,
}
},
methods : {
changeSwitch() {
console.log(event.currentTarget.checked);
console.log(event.currentTarget.name)
}
}
};
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
试试
@change="changeSwitch"
http://jsfiddle.net/2hr6y79h/3/
那会给你价值。
该组件将(可能)使用
this.$emit('change', this.value)
将名称作为唯一参数传递给绑定的 "change" 事件处理程序。
如果你想要 name
通过 props 传递,我怀疑它会改变所以只需在你的 Vue
实例/组件中保存对它的引用,例如
data () {
return {
value1: true,
name: 'test-name'
}
}
并使用
<el-switch ... :name="name"
然后您可以随时通过 this.name
访问它。
<div v-for="organizer in organizers>
<el-switch @change="changeOrganizers()" :name="organizer.name">
</el-switch>
</div>
var Main = {
data() {
return {
value1: true,
}
},
methods : {
changeSwitch() {
console.log(event.currentTarget.checked);
console.log(event.currentTarget.name)
}
}
};
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
我正在尝试在最后一次触发事件时访问组件的道具。此组件来自 http://element.eleme.io/#/en-US/component/switch.
它有name、value等几个props。我希望能够在触发更改时获取开关的名称或值。
更重要的是,如何访问触发更改事件的开关的任何道具?
我试过了,但我没有定义。
<div v-for="organizer in organizers>
<el-switch @change="changeOrganizers($event.target.name, $event.target.value)" :name="organizer.name">
</el-switch>
</div>
var Main = {
data() {
return {
value1: true,
}
},
methods : {
changeSwitch(name) {
console.log(name)
}
}
};
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
http://jsfiddle.net/2hr6y79h/2/
谢谢
解决方案
<div v-for="organizer in organizers>
<el-switch @change="changeOrganizers()" :name="organizer.name">
</el-switch>
</div>
var Main = {
data() {
return {
value1: true,
}
},
methods : {
changeSwitch() {
console.log(event.currentTarget.checked);
console.log(event.currentTarget.name)
}
}
};
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
试试
@change="changeSwitch"
http://jsfiddle.net/2hr6y79h/3/
那会给你价值。
该组件将(可能)使用
this.$emit('change', this.value)
将名称作为唯一参数传递给绑定的 "change" 事件处理程序。
如果你想要 name
通过 props 传递,我怀疑它会改变所以只需在你的 Vue
实例/组件中保存对它的引用,例如
data () {
return {
value1: true,
name: 'test-name'
}
}
并使用
<el-switch ... :name="name"
然后您可以随时通过 this.name
访问它。
<div v-for="organizer in organizers>
<el-switch @change="changeOrganizers()" :name="organizer.name">
</el-switch>
</div>
var Main = {
data() {
return {
value1: true,
}
},
methods : {
changeSwitch() {
console.log(event.currentTarget.checked);
console.log(event.currentTarget.name)
}
}
};
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')