未捕获的ReferenceError:Sails 0.11上未定义JST

时间:2015-12-29 21:40:42

标签: reference sails.js undefined undefined-reference jst

使用 Sails 时,每当这行代码时,Chrome控制台上出现此错误未捕获的ReferenceError:JST未定义

JST['SailsApp/assets/templates/addUser.ejs']( obj )

addUser.ejs 文件的内容为:

<tr data-id="<%= user.id %>" data-model="user">
  <% if (user.online) { %>
  <td><span class="fa fa-circle fa-lg fa-circle-green"></span></td>
  <% } else { %>
  <td><span class="fa fa-circle fa-lg fa-circle-red"></span></td>
  <% } %>

  <td><%= user.id %></td>
  <td><%= user.name %></td>
  <td><%= user.title %></td>
  <td><%= user.email %></td>

  <% if (user.admin) { %>
  <td> <span class="glyphicon glyphicon-king" > </span></td>
  <% } else { %>
  <td> <span class="glyphicon glyphicon-user" > </span></td>
  <% } %>

  <td><a href="/user/show/<%= user.id %>" class="btn btn-sm btn-primary">Show</a> </td>
  <td><a href="/user/edit/<%= user.id %>" class="btn btn-sm btn-warning">Edit</a> </td>
  <td>
    <form action="/user/destroy/<%= user.id %>" method="POST">
      <input type="hidden" name="_method" value="delete"/>
      <input type="submit" class="btn btn-sm btn-danger" value="Delete"/>
      <input type="hidden" name="_csrf" value="<%= _csrf%>" />
    </form>
  </td>
</tr>

已编译的.jst文件未出现在 .tmp / public folder 中,如果我手动运行sudo grunt jst,则会创建它,但Chrome控制台会继续提供相同的内容错误。

非常感谢任何帮助。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我最近遇到了同样的问题。在&task; / register / compileAssets.js&#39;下,尝试将jst:dev移到copy:dev下方。

module.exports = function (grunt) {
  grunt.registerTask('compileAssets', [
    'clean:dev',
    'less:dev',
    'copy:dev',
    'jst:dev',
    'coffee:dev'
  ]);
};

似乎jst:dev任务正在查找.tmp / dir中的模板文件,但它们不会从assets /移动直到执行复制任务。如果您运行grunt并收到如下错误,则会看到此消息:

Running "jst:dev" (jst) task
>> Destination not written because compiled files were empty.