javascript - 如何在 JavaScript 字符串中编译 Ember Action ?

标签 javascript ember.js

在我的 Ember 组件 items-map.js 中,我正在调用 Google map 。 Google Map API 允许我拥有 infoWindows(单击 map 上的任何图钉后打开的气泡)。

我在这些气泡中有一些 HTML 内容,单击其中的链接应该会转换到另一条路线。我正在尝试使用组件内的操作来实现此目的,但为了做到这一点,我首先需要能够将 Handlebars 语法编码到 infoWindow 的 HTML 中。

JavaScript 字符串如下所示:

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

如您所见,我在字符串中有一个 Handlebars 操作。呈现按钮时,不会编译 Handlebars 操作。我尝试将上面的字符串包装在一个“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);
   });
  });

关于javascript - 如何在 JavaScript 字符串中编译 Ember Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37901945/

相关文章:

php - 即时更改选择菜单选项

javascript - 查找 div 的子类

javascript - 将模型的属性渲染为 HTML 页面标题

ember.js - 在Ember.js的模板中,当您在#each block 中时,如何在父上下文中引用值?

javascript - EmberJS - 设置选择 View 的默认值

javascript - 将数据从 Controller 传递到 Ember 中的路由

javascript - 无法正确导出函数,es6

javascript - req.body 没有显示为键值对之一,但 req.headers 和其他文件却显示为键值对之一

javascript - js 的替换方法的正则表达式不起作用

javascript - ember.js - 支持数字字段