我想在我的VUEJS模块中使用mixin:
模
<script>
var GoogleMaps = require('../mixins/GoogleMaps');
export default {
mixins: [GoogleMaps],
events: {
MapsApiLoaded: function(data) {
GoogleMaps.initGISMap(data);
}
},
}
</script>
Run Code Online (Sandbox Code Playgroud)
混入
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误,GoogleMaps.initGISMap不是一个函数.如何在组件中使用mixin方法?
- 编辑以纠正我在解释您的需求时所犯的错误
当使用混入,你不引用方法MixinName.method() - 它只是"这" - 你的mixin并返回这些方法和属性是一阶,可以这么说,所以就必然要"本".
<script>
var GoogleMaps = require('../mixins/GoogleMaps');
export default {
mixins: [GoogleMaps],
events: {
MapsApiLoaded: function(data) {
this.initGISMap(data);
}
},
}
</script>
Run Code Online (Sandbox Code Playgroud)