Zhe*_*hen 4 javascript jquery render timing backbone.js
我正在使用backbone.js创建我的应用程序
如下所示,我有一个layoutView,我用它来渲染布局,还有布局中的迷你配置文件.
我遇到的问题是时间问题.在触发'renderProfile'方法之前,我需要首先完成'render'方法.我怎样才能做到这一点?
Onethingaday.Views.Home ||= {}
class Onethingaday.Views.Home.LayoutView extends Backbone.View
template: JST["backbone/templates/home/layout"]
initialize: ->
@options.user.bind('change',@render,@renderProfile, @)
renderProfile: ->
view = new Onethingaday.Views.Shared.MiniProfileView
user: @options.user
@$('.profile').html view.render().el
render: ->
$(@el).html(@template())
@
Run Code Online (Sandbox Code Playgroud)
您的情况就是我为Backbone编写LayoutManager的原因,http://github.com/tbranyen/backbone.layoutmanager.
您应该做的是将子视图与主(布局)视图分开.
所以在你的路线回调你会有这样的事情:
// Initialize a Layout View
var profile = new Onethingaday.Views.Home.LayoutView();
// Initialize a MiniProfile View
var miniProfile = new Onethingaday.Views.Shared.MiniProfileView({
model: user
});
// This appears synchronous in your code, so this should work fine
$(profile.render().el).find(".profile").html(miniProfile.render());
Run Code Online (Sandbox Code Playgroud)
我会恳请你调查我的库,因为我认为子视图与布局相关联的声明方式非常优雅.
| 归档时间: |
|
| 查看次数: |
2714 次 |
| 最近记录: |