在我的Ember组件items-map.js
中,我正在调用Google Map。Google Map API允许我拥有Infowdows(单击地图上的任何PIN后打开的气泡)。
我在这些气泡内有一些HTML内容,然后单击其中的链接,应过渡到另一个路线。我正在尝试使用组件中的操作来实现这一目标,但是为了做到这一点,我需要首先能够将车把语法编码到InfowDindow的HTML中。
JavaScript字符串看起来像这样:
var infoWindowContent = '<a class="btn" href="javascript:void(0);" {{action "routeToItem"}}>See Items</a>';
您可以看到,我在字符串中有一个车把动作。在渲染按钮时,车把动作不会被编译。我尝试将上面的字符串包裹在``handlebars.compile()'方法中:
var infoWindowContent = Ember.Handlebars.compile('var infoWindowContent = '<a class="btn" href="javascript:void(0);" {{action "routeToItem"}}>See Items</a>';');
这产生了错误。我现在没有获得按钮,而是看到了本应在哪里的文本[object Object]
。我该如何解决?
我也有同样的问题,但是我已经使用jQuery确保它可以使用,请尝试。
var infoWindowContent = "<span class="tooltip-text">" +
"<span class="infowIndow">" +
"<a href="#/vehicle/<%= uuid %>"><%= name %></a>" +
"</span>" +
"<span class="tool-tip firstItem-tool-tip"><%= tool_tip_name %></span></span>";
var t = this;
var vehicle_uuid = 'aBCfdf';
var infowindow = new google.maps.InfoWindow({
content: infoWindowContent
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
marker.addListener('click', function() {
infowindow.open(map, marker);
$('.infowIndow').on('click', function() {
// as I am also doing in component I am using t.get('targetObject')
t.get('targetObject').transitionToRoute('vehicle.history', vehicle_uuid);
});
});