serge
serge

Reputation: 15239

Angular. Execute a angular function from a popup window

I have an angluar module. In that module I have a controller with a function. I need to execute that function in popup on href click.

As the popup content is not initially part of DOM or angular context, how can make a angular function to be executed by that generated code?

Here is what I try to code: codepen

app.controller('AppCtrl', ['$scope', 'myPopup', function($scope, myPopup) {
...
var infoWindow = new google.maps.InfoWindow({
  content: "<a href='#' onclick='myPopup.show();'>this is my link</a>"
});

To retain is that I don't try to make execute exactly this code, I just search a way to execute an angular service function from a generated "on-fly" html code (a dynamic popup content, in my case).

Upvotes: 0

Views: 656

Answers (1)

Chanthu
Chanthu

Reputation: 1794

First of all here's the working codepen: http://codepen.io/anon/pen/vKRWYy?editors=1010

So, the solution(just A solution. Not THE solution) is to add modal open function on window or global scope. And invoke that function on clicking the map.

window.showPopup = function(){
    myPopup.show();
};

<a href='#' onclick='showPopup();return false;'>this is my link</a>

On a side note, it's generally not good practice to use non angular code with angular. It might be worth looking at an angular google maps implementation like: http://angular-ui.github.io/angular-google-maps/#!/. Maybe?

Upvotes: 1

Related Questions