How to submit a form and get data from google map marker?

时间:2016-02-12 19:34:06

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

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>&nbsp;
                                <input  type="text" ng-model="name"/>

                                <label>Place</label>&nbsp;
                                <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>

3 个答案:

答案 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
      };
});