如何在EJS模板中使用jQuery和vanilla JS

时间:2014-12-23 08:51:19

标签: javascript jquery ejs embedded-javascript

我在EJS模板上执行jQuery代码时遇到问题。我的代码:

$.json('/data.json', function (data) {
    new EJS({url: 'template.ejs'}).update('mycontainer', {data: data});
})

有效。但是当我试图在这个模板上使用一些jQuery插件时 - 没有。我的EJS模板示例:

<script>
   alert(0);
   $(document).ready(function () {
      $('#someId').someJQplaugin();
   })
</script>
<div id="someId"><%= data.someValue%></div>

插件和警报(!!)无效。然后我在<% %>标签之间替换我的代码。 Alert和document.ready正在运行,但是jQuery无法在附加的EJS模板中找到该对象。

我试图从模板中使用jQuery,但结果是一样的:

  

$('#someId')为空。

如何一起使用EJS和jQuery?

1 个答案:

答案 0 :(得分:0)

我猜,我解决了一个问题。 EJS没有关于更新/插入的回调。我像这样扩展了EJS:

EJS.Prototype = {
   ...
   update: function(element, options, cb) {
   ...
   // add this to the end of function
   if(cb != null)
      cb();
   }

现在我可以像这样执行回调:

new EJS({url: template}).update(obj.attr('data-selector'), {data: data}, function () {
   // it works
   $('#someId').someJQplugin();
});

希望,这会有所帮助)