我有一些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 + " " + marker.city + ", " + marker.state + " " + 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!');
};
............
誰能告訴我什麼,我做錯了,或如何正確地解決這個問題?
謝謝你的時間。