Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/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
Javascript 集合上的Backbone.js fetch()出现问题_Javascript_Model View Controller_Backbone.js - Fatal编程技术网

Javascript 集合上的Backbone.js fetch()出现问题

Javascript 集合上的Backbone.js fetch()出现问题,javascript,model-view-controller,backbone.js,Javascript,Model View Controller,Backbone.js,仍在努力学习。目前,由于在我的主干集合上调用.fetch()后发生了一些未知的、未报告的错误,我的视图根本无法呈现。因为这可以来自我的应用程序中的任何地方,所以我为您设置了一个查看所有文件的要点 视图中的注释应该解释正在发生的错误以及服务器的响应(只是Sinatra+Redis)。来自/schools的响应是[{“name”:“Foo”},{“name”:“Bar”}],但我不明白这会导致错误的原因。由于某种原因,我的视图从未初始化,即使我在路由器中创建了一个新窗口.fooView。有人能帮我

仍在努力学习。目前,由于在我的主干集合上调用
.fetch()
后发生了一些未知的、未报告的错误,我的视图根本无法呈现。因为这可以来自我的应用程序中的任何地方,所以我为您设置了一个查看所有文件的要点


视图中的注释应该解释正在发生的错误以及服务器的响应(只是Sinatra+Redis)。来自
/schools
的响应是
[{“name”:“Foo”},{“name”:“Bar”}]
,但我不明白这会导致错误的原因。由于某种原因,我的视图从未初始化,即使我在路由器中创建了一个
新窗口.fooView
。有人能帮我吗?谢谢

看起来您从未调用视图的
render
方法。您应该在router.js第8行或index.js
initialize
第12行末尾明确执行此操作。有些人喜欢在
初始化
后自动渲染视图,但默认情况下,主干网希望您在任何时候都显式渲染视图。我认为您的
schools.bind
将在后续更改中执行此操作,但在代码运行的方式中,您获取激发事件的schools,然后创建视图并对其进行绑定,因此在绑定视图时,不再激发事件,因此
render
不会被调用。一个工作示例当然更容易调试,但通过阅读要点,这是我的猜测。

看起来您从未调用视图的
render
方法。您应该在router.js第8行或index.js
initialize
第12行末尾明确执行此操作。有些人喜欢在
初始化
后自动渲染视图,但默认情况下,主干网希望您在任何时候都显式渲染视图。我认为您的
schools.bind
将在后续更改中执行此操作,但在代码运行的方式中,您获取激发事件的schools,然后创建视图并对其进行绑定,因此在绑定视图时,不再激发事件,因此
render
不会被调用。一个工作示例当然更容易调试,但通过阅读要点,这是我的猜测。

那么uu.bind('all',render)完全没有用了?我认为只要推断出视图对象,就会调用render方法(在本例中,在路由器的
new window.fooView
)。正确的方法不是绑定它,而是直接从initialize调用它(而不是执行
new window.fooView.render
)?不,它不是完全无用的。如果更改集合(如再次调用fetch或执行add/remove),它将呈现视图,但问题在于代码的运行顺序。因为fetch在绑定东西之前就被调用了,所以它会变为1。打电话给2。收集活动3。您绑定到收集事件,但糟糕的是它们已经触发了,所以不会立即发生任何事情。如果在创建视图对象后将fetch调用移动到router.js
index
,那么它应该开始工作。或者第一次显式地调用
render
。下面是一个很好的例子:注意他在
initialize
方法末尾调用
render
的方式。在调试器语句处停止并调用
新窗口。学校
给我一个类型错误,称为\u non\u callable
,考虑到我的藏品几乎是空的,这毫无意义。视图和这个错误之间有什么关系吗?那么u.bind('all',render)是完全无用的吗?我认为只要推断出视图对象,就会调用render方法(在本例中,在路由器的
new window.fooView
)。正确的方法不是绑定它,而是直接从initialize调用它(而不是执行
new window.fooView.render
)?不,它不是完全无用的。如果更改集合(如再次调用fetch或执行add/remove),它将呈现视图,但问题在于代码的运行顺序。因为fetch在绑定东西之前就被调用了,所以它会变为1。打电话给2。收集活动3。您绑定到收集事件,但糟糕的是它们已经触发了,所以不会立即发生任何事情。如果在创建视图对象后将fetch调用移动到router.js
index
,那么它应该开始工作。或者第一次显式地调用
render
。下面是一个很好的例子:注意他在
initialize
方法末尾调用
render
的方式。在调试器语句处停止并调用
新窗口。学校
给我一个类型错误,称为\u non\u callable
,考虑到我的藏品几乎是空的,这毫无意义。视图与此错误之间是否存在任何关系?