Ruby on rails Backbone.js视图未插入模板
我正在为我的主干/rails应用程序创建用户视图。我正在尝试添加新视图: /views/users/edit.js.coffeeRuby on rails Backbone.js视图未插入模板,ruby-on-rails,backbone.js,backbone-views,backbone-routing,Ruby On Rails,Backbone.js,Backbone Views,Backbone Routing,我正在为我的主干/rails应用程序创建用户视图。我正在尝试添加新视图: /views/users/edit.js.coffee class MosaikBackbone.Views.UsersEdit extends Backbone.View template: JST['users/edit'] render: -> $(@el).html(@template()) this 模板位于/templates/users/edit.jst.eco中 <
class MosaikBackbone.Views.UsersEdit extends Backbone.View
template: JST['users/edit']
render: ->
$(@el).html(@template())
this
模板位于/templates/users/edit.jst.eco中
<h1>edit page</h1>
索引视图/模板工作正常,视图被插入到容器div中。如果我将UsersEdit视图的标记名更改为“li”,我可以在DOM中看到li元素,它只是没有被模板填充。我想这是一个语法问题,但是控制台中没有错误
更新:为了澄清,视图被附加到容器中,因为我可以看到空的元素项,只是呈现模板有问题
我在UsersIndex视图中引用了template:JST['users/index'],一切正常。出于某些原因,模板:JST['users/edit']无法工作,即使两个模板位于同一文件夹中。此外,我可以在编辑模板中放置无效语法,并且不会抛出任何错误,因此它甚至不会被检测到
更新2:以下视图/模板可以正常工作:
class MosaikBackbone.Views.UsersIndex extends Backbone.View
template: JST['users/index']
initialize: ->
@collection.on('reset', @render, this)
@collection.on('add', @appendUser, this)
render: ->
$(@el).html(@template())
@collection.each(@appendUser)
this
appendUser: (user) ->
view = new MosaikBackbone.Views.User(model: user)
$('#users').append(view.render().el)
模板/users/index.jst.eco
h1>title here</h1>
<ul id="users"></ul>
看来应该行得通。您是否尝试过创建UserEdit视图并手动附加到DOM?在调试控制台中,我的意思是。视图正在附加到DOM-它只是一个空div。出于某种原因,模板没有被添加。问题似乎出在模板上:JST['users/edit'],因为我可以在模板中使用无效的语法,并且不会出现错误。那么JST['users/edit']看起来是什么样子呢?编辑模板和索引模板之间存在显著差异?上面包括了JST['users/edit'],JST['users/index']模板位于同一文件夹中:templates/users/filename.JST.eco,并且工作正常。更新我的问题以包括工作索引视图和模板我认为我们需要看到这一点,如果需要,可以从这里开始:
h1>title here</h1>
<ul id="users"></ul>