当用户点击菜单时,我正在使用VueJS 2.3.0
来更改图片和其他信息。
菜单由VueJS模板从JSON数据源生成:
<template id=\"rac-menu\">
<ul class=\"col-md-3\" v-show=\"!ajanlatkeres\">
<li v-for=\"model in models\" model=\"model\">
<a href=\"javascript:;\"
class=\"rac_setactive\"
v-on:click=\"setActive(\$event)\"
:data-id=\"model.id\">
{{ model.name }}
</a>
</li>
</ul>
</template>
以下是VueJS脚本代码:
Vue.component('racmenu', {
template: '#rac-menu',
data: function() {
var models = {};
for (var id in rac_data ) {
models[id] = {};
models[ id ]['id'] = id;
models[ id ]['name'] = rac_data[id].modell;
}
return {models: models};
},
props: ['model','ajanlatkeres'],
methods: {
setActive: function(e) {
bus.\$emit('set-rac-content', e.path[0].dataset.id);
},
}
});
在Chrome中,一切都很好,但在Safari和Firefox中我收到错误:TypeError: e.path is undefined
。
我该如何解决这个问题?
答案 0 :(得分:3)
e.path是仅镀铬属性。 尝试用e.target替换e.path [0]
如果不起作用,则有composPath .. 看看this问题
答案 1 :(得分:1)
在html调用setActive中,默认情况下不是setActive($ event):
<a href=\"javascript:;\"
class=\"rac_setactive\"
v-on:click=\"setActive\"
:data-id=\"model.id\">
{{ model.name }}
</a>
在功能使用中:
setActive: function(e) {
bus.\$emit('set-rac-content', e.target.path[0].dataset.id);
}