如何在JavaScript字符串中编译Ember动作



在我的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);
   });
  });

最新更新