0

我们在我团队的一个项目中使用 Backbone.js,这是我第一次使用它。

我见过很多次这种代码(它是coffeescript,但我认为足够清楚。@意思是this.

clients_view = new Homespa.Views.Orders.Clients.SectionView(collection: @options.clients)
@$("#clients-section").html(clients_view.render().el)

clients_search_view = new Homespa.Views.Orders.Clients.SearchView
@$("#clients_search_modal").html(clients_search_view.render().el)

难道没有更好的方法来做到这一点吗?我希望只是调用render我的观点,然后一切都很好,我不必手动获取 html 并附加/替换它。

谢谢你的时间!

4

1 回答 1

1

自动将自身附加到页面的视图将要求视图了解外部世界,了解它不拥有的元素。情况不妙。

而且它不是特定于主干的,您不能只创建一个元素并期望它出现在某个地方。它总是需要先插入页面。

var a = document.createElement("div"); //Don't expect this to appear as a child of #footer or something
document.getElementById("footer").appendChild(a) //Now it is, but we needed to know about #footer.

充其量您可以通过以下方法缩短管道.renderTo

someView.renderTo( "#clients-section"); //Would call .render and append the views .el to "#clients-section" without the view having to know about it
于 2012-07-06T09:12:01.710 回答