Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js未更新视图中的HTML_Backbone.js - Fatal编程技术网

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>')