Using Angular google map plugin. I am trying to submit a form in google map marker infoWindow and read the data in my controller.
I am not able to detect the click on "Ok" in my controller.
$scope.register = function()
{
console.log('register clicked');
}
I am not able to see this log print.
<ui-gmap-google-map >
<ui-gmap-marker >
<ui-gmap-window options="windowOptions" show="true" closeClick="closeClick()">
<form class="form " >
<label >Name</label>
<input type="text" ng-model="name"/>
<label>Place</label>
<input type="text" ng-model="place"/>
<button type="submit" ng-click="register()">Ok</button>
<button type="button" ng-click="closeClick()">Cancel</button>
</form>
</ui-gmap-window>
</ui-gmap-marker>
</ui-gmap-google-map>
答案 0 :(得分:1)
我已使用Compile Angularjs服务解决了这个问题。
只需为弹出窗口分配一个ID并进行编译即可。
var pp = angular.element(document.querySelector(&#39;#id_poup_element&#39;));
$编译(PP)($范围);
很高兴回答任何问题。
答案 1 :(得分:0)
ui-gmap-window
内容位于另一个范围内。
假设您在主控制器中具有register()
功能,如果您想从地图窗口访问它,则需要使用$parent
两次调用它:
<button ng-click="$parent.$parent.register()">Ok</button>
这是一个plunker,您可以在其中看到它正常工作。
希望它有所帮助。
答案 2 :(得分:0)
不建议使用$ parent。$ parent,因为您直接引用父作用域,修改您的代码,以便您使用的控制器在谷歌地图UI的范围内,我的回答可能含糊不清但会帮助您获得一些线索 - 使它从地图控制器范围内调用你的函数
.controller("someController", function($scope, uiGmapGoogleMapApi) {
uiGmapGoogleMapApi.then(function(maps) {
});
$scope.register = function(){
// do something
};
});