2016-07-14 49 views
0

我有一些JavaScript與Google Maps接口。我沒有包括所有的代碼來保持這個簡短,但可以說有一個循環會在Google Map上爲事件數據庫中的每個事件放置一個標記。點擊標記會彈出一個infoWindow並顯示有關該特定事件的信息。我可以確認一切到此爲止。另外,我將一個Angular控制器的範圍拉到DOM中,所以我可以從這個控制器調用一些函數(我不知道這是否是正確的術語)。我可以證實這一點也適用。我從控制器調用sayHello()函數,每次單擊標記時都會在控制檯中打印「hello」。我可以在JavaScript中使用Angular範圍函數,但不能在JavaScript中使用HTML

下面是代碼:

var g = angular.element(document.querySelector('[ng-controller="SignupController"]')).scope(); 
g.sayHello(); 

// display info about the event in an infowindow 
infoWindow.setContent(
"Instructor Name: " + marker.instructorName + 
"<br /> Instructor Email: " + marker.instructorEmail + 
"<br /> Instructor Rating: " + marker.instructorRating + showMe + 
"<br /> <br /> Event Name: " + marker.name + 
"<br /> Event Description: " + marker.description + 
"<br /> Available Spaces: " + marker.spaces + 
"<br /> <br /> Address: " + marker.address + "&emsp;" + marker.city + ", " + marker.state + "&emsp;" + marker.zip + 
"<br /> Location Type: " + marker.locationType + 
"<br /> <br /> Time: " + marker.startTime + " - " + marker.endTime + 
"<br /> Tags: " + marker.tags + 
"<br /> <br /> Distance from you (straight line): " + marker.distance + " miles" + 
"<br /> <br /> Price: $" + marker.price + 
"<br />" + "<button ng-click='g.sayHello();' class='btn btn-primary'>Say Hello</button>"); 

我有這個代碼的最後一行的麻煩。我已經在infoWindow代碼之前執行了控制器中的函數,並且它的行爲正確。但是,我希望在單擊按鈕時在信息窗口中執行該功能。我在infoWindow中包含了這個按鈕,但是當我點擊按鈕時沒有任何反應。我想弄清楚這一點,所以我可以添加將創建PayPal和信用卡付款的按鈕。

這裏是我的控制器代碼:

app.controller('SignupController', ['$scope', 'UserFactory', 'Share', function($scope, UserFactory, Share) { 

    $scope.sayHello = function() { 
    console.log('hello!'); 
    }; 

    ............ 

誰能告訴我什麼,我做錯了,或如何正確地解決這個問題?

謝謝你的時間。

回答

0

我能夠通過在這個問題上選擇的答案來解決我的問題:

Answer

相關問題