我是骨干的新手,我有一个非常奇怪的问题。问题是,当我将params传递给集合提取时,它永远不会触发成功回调方法,但是没有params它会触发。
这是我的代码,有了它,它永远不会成功回调,但如果我删除数据参数,那么它会成功回调并发出警告信息。
P.S,我知道还有另一种方法可以解决reset
属性并在视图中绑定集合但我无法使用它。
showPhotoList: (projectId) =>
@photoLists.fetch data: $.param(project_id: projectId),
success: @renderPhotoList,
error: =>
alert "Error occured while fetching the project"
renderPhotoList: =>
alert "hellow render"
答案 0 :(得分:1)
您的CoffeeScript没有按照您的想法执行。这样:
@photoLists.fetch data: $.param(project_id: projectId),
success: @renderPhotoList,
error: =>
alert "Error occured while fetching the project"
真的意味着:
@photoLists.fetch(
{ data: ... },
{ success: ..., error: => ... }
)
因此,您的success
和error
回调正在第二个参数中传递给fetch
,而不是第一个选项参数。 Collection#fetch
只知道一个选项参数,因此它永远不会看到你的回调。
您需要非常小心并与CoffeeScript格式保持一致:
@photoLists.fetch
data: $.param(project_id: projectId)
success: @renderPhotoList
error: =>
alert "Error occured while fetching the project"
如果这真的是你的错误回调,那么你不需要一个胖箭头(=>
),它不关心@
(AKA this
)是什么所以一个未绑定的函数(error: -> ...
)就足够了。