如何在JavaScript字符串中编译余烬操作?

如何在JavaScript字符串中编译余烬操作?,javascript,ember.js,Javascript,Ember.js,在我的余烬组件items map.js中,我正在调用一个谷歌地图。谷歌地图API允许我拥有信息窗口(一旦你点击地图上的任何一个pin就会打开的气泡) 我在这些气泡中有一些HTML内容,单击其中的链接,应该会转换到另一个路径。我试图通过组件中的一个操作来实现这一点,但为了做到这一点,我需要首先能够将Handlebar语法编码到infoWindow的HTML中 JavaScript字符串如下所示: var infoWindowContent = '<a class="btn" href="ja

在我的余烬组件
items map.js
中,我正在调用一个谷歌地图。谷歌地图API允许我拥有信息窗口(一旦你点击地图上的任何一个pin就会打开的气泡)

我在这些气泡中有一些HTML内容,单击其中的链接,应该会转换到另一个路径。我试图通过组件中的一个操作来实现这一点,但为了做到这一点,我需要首先能够将Handlebar语法编码到infoWindow的HTML中

JavaScript字符串如下所示:

var infoWindowContent = '<a class="btn" href="javascript:void(0);" {{action "routeToItem"}}>See Items</a>';
var infoWindowContent = Ember.Handlebars.compile('var infoWindowContent = '<a class="btn" href="javascript:void(0);" {{action "routeToItem"}}>See Items</a>';');
var infoWindowContent='';
正如你所看到的,我有一个把手动作在弦内。渲染按钮时,不会编译把手操作。我尝试将上述字符串包装到一个“handlebar.compile()”方法中,如下所示:

var infoWindowContent = '<a class="btn" href="javascript:void(0);" {{action "routeToItem"}}>See Items</a>';
var infoWindowContent = Ember.Handlebars.compile('var infoWindowContent = '<a class="btn" href="javascript:void(0);" {{action "routeToItem"}}>See Items</a>';');
var infoWindowContent=Ember.handlebar.compile('var infoWindowContent='';');

这产生了一个错误。我现在看到的不是按钮,而是按钮所在的文本
[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);
   });
  });
var infoWindowContent=“”+
"" +
"" +
"" +
"";
var t=这个;
var vehicle_uuid=‘aBCfdf’;
var infowindow=new google.maps.infowindow({
内容:infoWindowContent
});
var marker=new google.maps.marker({
职位:乌卢鲁,
地图:地图
});
marker.addListener('click',function()){
信息窗口。打开(地图、标记);
$('.infowIndow')。在('click',function()上{
//正如我在组件中所做的一样,我正在使用t.get('targetObject')
t、 获取('targetObject').TransitionRoute('vehicle.history',vehicle_uuid);
});
});

您可以发布整个组件吗?我不会为此使用余烬操作。我认为那行不通。相反,我将使用普通的ole javascript或jQuery设置您自己的自定义事件侦听器,然后在处理程序中激活余烬代码。