gpt4 book ai didi

backbone.js - MarionetteJS : Render only after fetch model success

转载 作者:行者123 更新时间:2023-12-01 01:09:17 25 4
gpt4 key购买 nike

如何在 Marionette 中获取模型之前推迟渲染?我可以在模型上监听更改事件,但它会被渲染两次。有没有优雅的解决方案?

Manager.module 'Views', ( Views, App, Backbone, Marionette, $) ->
class UserDetail extends Marionette.ItemView
template: 'manager.users.detail'


initialize: =>
@model = new App.Models.ManagerUser( )
return

onBeforeRender: =>
@username = 'test' # Comes from URL
@model.fetch()
return

serializeData: ->
data = @model.toJSON()
return data

最佳答案

一种常见的方法是从 Controller 而不是 View 调用 fetch。这允许您避免在 View 中处理路由事件。

这是一个演示该技术的 fiddle 。

http://jsfiddle.net/puleos/PHpCz/

编辑:( fiddle 更新)

Mod.metaModel = new metaModel();
Mod.tagsCollection = new tagsCollection();

Mod.compositeView = new CompositeView({
model: Mod.metaModel,
collection: Mod.tagsCollection
});

var metaPromise = Mod.metaModel.fetch({dataType: "jsonp"});
var tagsPromise = Mod.tagsCollection.fetch({dataType: "jsonp"});

metaPromise.done(function(data) {
App.region.show(Mod.compositeView);
});

关于backbone.js - MarionetteJS : Render only after fetch model success,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16400662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com