【发布时间】:2012-06-28 10:02:03
【问题描述】:
编辑了更多上下文。当 $CONSTRUCTOR = pass_in 时,它会在 Firefox 和 Chrome 中抛出“passed_in is not a constructor”。当 $CONSTRUCTOR = not_passed_in 时,它不会
initialize: (options) ->
@collection.bind 'all', @render
$('.search_box').parent('form').submit (event) =>
@loading()
event.preventDefault()
query = $(event.target).find('.search_box').val()
window.app.navigate('?query=' + query, trigger: true)
passed_in = PaginationView
@render(passed_in)
render: (passed_in)=>
if @collection.isEmpty() && @collection.query
@$el.html(JST['users/no_results'](query: @collection.query))
else if @collection.isEmpty() # Not loaded yet
@$el.html("<div class='loading'></div>")
else
html = JST['users/user_list'](@viewData())
@$el.html(html)
for user in @collection.models
html = new UserListItemView(model: user).render().el
@$('tbody.users').append(html)
not_passed_in = PaginationView
new $CONSTRUCTOR(
type: "user"
el: @$('.paginate')
model: @collection
data: {}
onError: @onError
).bind('change', @loading)
这是 CoffeeScript 的已知(错误|功能)吗?还是我做错了什么?
(这些在 Backbone.coffee 视图中。我怀疑这是否相关)
【问题讨论】:
-
我怀疑还有其他事情发生,因为我无法重现这一点。您能否发布更详细的代码示例?
-
我也无法重现此类错误。我在我的一个 Backbone 应用程序中修改了一个视图,以便
intialize将一个类类型传递给render,然后它创建了一个所述类的实例,它工作正常 -
您使用的是哪个版本的咖啡脚本编译器?适用于 1.3.3
-
看编译好的javascript不是最简单的吗?