1

在控制器中,我想在页面上获取地图(Google),将地图 ID 设置为变量,然后在同一控制器中的其他位置使用该地图 ID。

我有一个这样的片段;

var map;
NgMap.getMap({ id: 'mainMap' }).then(function (evtMap) {
    map = evtMap;
});

// Bind products to map
vm.products.$promise.then(function (data) {
    angular.forEach(data, function (child) {
        // add markers to map
    });
});

但是因为 NgMap 需要一点时间来加载,所以当下面的代码准备好时它还没有准备好,因此 map 是未定义的。一旦我们在地图中有有效数据,我如何确保下面的代码仅在运行?所以就像我正在使用的承诺一样,我猜,但是以不同的方式?

NgMap:https ://ngmap.github.io/

4

1 回答 1

1

为该方法提供回调函数.then允许您仅在地图加载后运行代码,因此只需在地图加载后将您的产品添加到您的地图(即将您的代码移动.then

NgMap.getMap({ id: 'mainMap' }).then(function (map) {

  // Bind products to map
  vm.products.$promise.then(function (data) {
      angular.forEach(data, function (child) {
          // add markers to map
      });
  });

});
于 2016-02-27T12:24:56.933 回答