如何在`GoogleOnReady`函数中运行Angular Scope中的函数?

时间:2014-02-22 18:43:21

标签: angularjs google-maps google-maps-api-3 angular-ui

我正在使用Angular Maps UI并使用我的API密钥通过脚本加载从Google API成功加载,Google正在正确调用我的回调函数。

'use strict';

angular.module('rszmeApp', [
  'ngCookies',
  'ngResource',
  'ngSanitize',
  'ngRoute',
  'ui.map'
])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  });

function onGoogleReady() {
    angular.bootstrap(document.getElementById("rszmeApp"), ['rszmeApp']);
}

但是,我想从GoogleOnReady函数在Angular Scope的控制器中运行一个函数,但我不确定如何从该函数访问它。

edit_的 _ __ _ ___

我像这样传递回调:

<script type="text/javascript"
        src="https://maps.googleapis.com/maps/api/js?key=mykey&sensor=false&callback=onGoogleReady&libraries=geometry,drawing "></script>

 perhaps there is a way to pass the scoped function in there?

2 个答案:

答案 0 :(得分:1)

您可以从角度世界外部访问控制器的范围,如下所示:

angular.element("#thingy").scope();

答案 1 :(得分:0)

不完全确定这是否是您需要的,但您可以在AngularJS中查看$ broadcast和$ on。它允许您收听事件并广播它们。 看看Passing Arugments to $on() in AngularJS from $emit() and $broadcast()