Javascript 访问导出默认值-Vue之外的数据字段

Javascript 访问导出默认值-Vue之外的数据字段,javascript,vue.js,Javascript,Vue.js,我想知道是否可以访问Vue组件的javascript文件中的导出默认值中的数据。我试图在calculateAndDisplayRoute()函数中获取routes数组的内容 overview.js function calculateAndDisplayRoute(directionsService, directionsDisplay) { var origin, dest; for (var route in this.routes /*<--HERE*/) { con

我想知道是否可以访问Vue组件的javascript文件中的
导出默认值
中的数据。我试图在
calculateAndDisplayRoute()
函数中获取
routes
数组的内容

overview.js

function calculateAndDisplayRoute(directionsService, directionsDisplay) {
  var origin, dest;
  for (var route in this.routes /*<--HERE*/) {
    console.log('www')
    if(route.id == this.filter){
      console.log('true')
    }
  }
  directionsService.route({
    origin: 'Vancouver',
    destination: 'Chicago',
    travelMode: 'DRIVING'
  }, function(response, status) {
    if (status === 'OK') {
      directionsDisplay.setDirections(response);
    } else {
      window.alert('Directions request failed due to ' + status);
    }
  });
}

export default {
  name: 'fleet-overview',
  data () {
    return {
      view: '',
      routes: [], //<--HERE
      users: [],
      errorRoute: '',
      response: [],
      filter: 'searchby',
      searchTerm: '',
      users: [],

    }
  },
  created: function () {
    this.routeView();
  },
  methods: {
      initMap: function(){
        this.$nextTick(function(){
          var directionsService = new google.maps.DirectionsService;
          var directionsDisplay = new google.maps.DirectionsRenderer;
          var map = new google.maps.Map(document.getElementById('map'), {
            center: {lat: 45.49, lng: -73.61},
            zoom: 9
          });
          directionsDisplay.setMap(map);
          var onChangeHandler = function() {
            calculateAndDisplayRoute(directionsService, directionsDisplay);
          };
          document.getElementById('filterselect').addEventListener('change', onChangeHandler);
        })
      }
//...
}
函数计算显示路径(方向服务、方向显示){
var来源,目的地;
对于(var route in this.routes/*,您可以使用它来适当地设置上下文(
this

calculateAndDisplayRoute.call(this, directionsService, directionsDisplay);
或者您可以修改函数定义以接受上下文(您不能将其称为
this
,但可以将其称为
context


你是说我应该同时做这两件事(即.call()和context参数)?如果是这样,我会得到一个
未捕获的TypeError:directionsService.route不是一个函数
。我正在尝试将上下文打印到控制台,但没有显示任何内容。它是一个或另一个。我会选择第二个(显式地传递
上下文
,不要使用
调用
)。但调用时确实需要将
作为
上下文
参数传递。到目前为止还不错,但是将
上下文
打印到控制台会打印id为
过滤器选择
的标记。我需要
数据()中包含的字段
通过在
onChangeHandler
外部将
this
设置为
thisContext
并将其传递给函数调用来获得它。
onChangeHandler
内部的
this
似乎更改为id为
filterselect
function calculateAndDisplayRoute(context, directionsService, directionsDisplay) {
  ...
  for (var route in context.routes /*<--HERE*/) {
    console.log('www')
    if(route.id == context.filter){
      console.log('true')
    }
  }
  ...
}
calculateAndDisplayRoute(this, directionsService, directionsDisplay);