Backbone.js未更新视图中的HTML
我认为:Backbone.js未更新视图中的HTML,backbone.js,Backbone.js,我认为: class FoursquareSearch.Views.SearchNew extends Backbone.View tagName: 'sidebar' template: JST["templates/search/new_search"] #events: # 'submit': 'create' initialize: -> @render render: -> console.log('hello')
class FoursquareSearch.Views.SearchNew extends Backbone.View
tagName: 'sidebar'
template: JST["templates/search/new_search"]
#events:
# 'submit': 'create'
initialize: ->
@render
render: ->
console.log('hello')
$this = $('#sidebar')
$this.html('<p>All new content. <em>You bet!</em></p>')
$this
这个HTML
<div id="top"></div>
<div id="sidebar">
</div>
我可以看到console.log
消息,但是HTML类/id没有得到更新
如果我跑步:
$this = $('#sidebar')
$this.html('<p>All new content. <em>You bet!</em></p>')
$this=$(“#边栏”)
$this.html(“所有新内容。当然!”)
在控制台中,我可以看到页面上的HTML更改,只是Backbone.js似乎不想为我更新视图?在初始化方法中将@render更新为@render()。您只是返回方法,但从未调用它。请添加初始化代码。您只是忘记调用主干.history.start()?您能否通过日志记录确认实际调用了
索引
?我已经添加了初始化代码,不确定如何确认是否实际调用了index in?但是它确实像我说的那样运行console.log,所以我知道它可以通过render函数…谢谢-但是如果我改变它没有什么区别,在@muistooshort发布的示例中有一个FoursquareSearch.init() 在路由器的末端?如果我添加这个,我会在第12行得到一个“Error:Parse Error:意外的”标识符“”@CharlieDavies:jsfiddle将所有内容包装在一个onload处理程序中,因此它不需要$(document).ready(…)
东西。你在做什么和我的小提琴在做什么有什么不同?我看不出有什么不同。。。真奇怪!
window.FoursquareSearch =
Models: {}
Collections: {}
Views: {}
Routers: {}
init: ->
new FoursquareSearch.Routers.Maps()
Backbone.history.start()
$(document).ready ->
FoursquareSearch.init()
$this = $('#sidebar')
$this.html('<p>All new content. <em>You bet!</em></p>')