未捕获的ReferenceError:使用Jade模板在Backbone中未定义JST

时间:2014-12-11 04:14:40

标签: javascript ruby-on-rails backbone.js underscore.js pug

我刚刚设置了一个骨架Rails 4应用程序并添加了backbone-on-rails gem和一些基本的脚手架。

在尝试设置所有内容的过程中,我一直遇到以下错误:

Uncaught ReferenceError: JST is not defined 
(anonymous function)

尝试从骨干视图调用模板index.jst.jade时。

我添加了一条带警报的路线,以确保脚手架连接在一起,但我无法通过此错误来正确渲染视图。

我已经包含了jade gem,确保js视图中的模板路径正确,并相应地更新了清单文件。

我是否必须在某处定义JST?我在这里做错了什么?

由于

宝石版本:

  • jade(0.1.1)
  • backbone-on-rails(1.1.1.0)
  • underscore-rails(1.7.0)
  • Rails 4.1.6 Ruby 2.1.0

路由器:

Task.Routers.Tasks = Backbone.Router.extend({
  routes: {
    '': 'index',
  },

  index: function() {  
    alert('index router hit');
  },
});

查看:

Task.Views.TasksIndex = Backbone.View.extend({
  template: JST['tasks/index'] 
});

的application.js:

//= require jquery
//= require lodash
//= require jquery_ujs  
//= require backbone
//= require jade/runtime

//= require task
//= require_tree ../templates
//= require_tree ./models
//= require_tree ./collections
//= require_tree ./views
//= require_tree ./routers
//= require_tree .

App结构树:

|____javascripts
| |____application.js
| |____collections
| | |____tasks.js
| |____models
| | |____task.js
| |____routers
| | |____tasks_router.js
| |____task.js
| |____views
| | |____tasks
| | | |____tasks_index.js
|____templates
| |____tasks
| | |____index.jst.jade

1 个答案:

答案 0 :(得分:0)

嗯......您是否在模板之前需要runtime.js文件? http://www.rubydoc.info/gems/jade/0.1.1/frames

这是一个评论,但我没有足够的评论意见。哈哈。