从javascript或其他方式访问angularjs

时间:2013-12-03 09:10:52

标签: javascript angularjs

我正在学习angularjs并且有点困惑。我正在创建一个角度模块和控制器函数,如下所示:

    var mapApp = angular.module("mapApp", []);

    mapApp.controller("mapController", function($scope) {

        $scope.save = function() {
            //do domething
        };
    });

我还有控制器以外的其他功能。

    function onMapClickEvent(e) {
             //do domething
    }

当地图clilcked时,我想填充角度保存功能。这可能。

我问过这个问题,因为有时我们需要使用多个API。 AngularJS和Google Maps API。一个API函数需要填充其他API。

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式将DOM元素强制转换为Angular元素:

angular.element(DOM)

通过调用scope()

获取DOM的当前范围
angular.element(DOM).scope()

然后,您可以在示例中访问此范围的任何成员:save()

我实现了一个简单的例子,你可以尝试一下:

HTML

<div ng-controller="myCtrl">
  <button id="testBtn" onclick="onClick(this)">test</button>
</div>

JS

angular.module("app",[])
.controller("myCtrl",function($scope){
  $scope.angularWorldFunction = function(){
    console.log("message from angular world");
  }
});

function onClick(target){
  angular.element(target).scope().angularWorldFunction();
}

这是jsFiddle demo

希望这有用。