我想在我的VUEJS模块中使用mixin:
模块
<script>
var GoogleMaps = require('../mixins/GoogleMaps');
export default {
mixins: [GoogleMaps],
events: {
MapsApiLoaded: function(data) {
GoogleMaps.initGISMap(data);
}
},
}
</script>
密新
export default {
methods: {
initGISMap(selector) {
map = new google.maps.Map(selector, {
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP,
});
// Set initial Location and center map to this location
initialLocation = new google.maps.LatLng(48.184845, 11.252553);
map.setCenter(initialLocation);
// Create a searchmarker
searchMarker = createMarker();
// Init Autocomplete for GIS
initAutoComplete();
}
}
}
但是我收到一个错误,GoogleMaps.initGISMap不是一个函数。如何在组件中使用mixin方法?
答案 0 :(得分:6)
- 编辑以纠正我在解释您的需求时所犯的错误
当使用mixins时,你没有引用MixinName.method()方法 - 它只是'this' - 你的mixin返回的那些方法和属性是第一顺序,所以可以说,它们必然会'这个' ”。
<script>
var GoogleMaps = require('../mixins/GoogleMaps');
export default {
mixins: [GoogleMaps],
events: {
MapsApiLoaded: function(data) {
this.initGISMap(data);
}
},
}
</script>