gpt4 book ai didi

javascript - Backbone - 在多个事件后渲染 View

转载 作者:行者123 更新时间:2023-11-30 16:55:35 25 4
gpt4 key购买 nike

我有一个 Backbone View,我只想在两个不同的事件发生后才渲染它。这两个事件是从服务器填充的两个不同的集合(这是为了填充两个下拉选择列表)。

我的两个CollectionscFilterFieldscFilterOperators,它们都有一个自定义的.populate()方法调用.fetch() 并触发 populated 事件。

这是我的:

var MyView = Backbone.View.extend({
tagName: 'div',
initialize: function(){
_.bindAll(this,'render');

this.fields = new cFilterFields();
this.operators = new cFilterOperators();

this.fields.populate();
this.operators.populate();

this.listenTo(this.fields,'populated',function(){
// ...
});
this.listenTo(this.operators,'populated',function(){
// ...
});

},
events: {},
render: function(){
// ...
return this;
}
});

两个 Collection 事件都已触发时,呈现此View 的最佳方式是什么...?

最佳答案

让集合的 populate 方法返回 promise ,然后使用 jQuery.when

你的初始化应该看起来像这样

$.when(fields.populate(), operators.populate())
.done(_.bind(function() {
this.render();
}, this));

此解决方案采用 JQuery 和下划线,因为它们都是 Backbone 的依赖项。

关于javascript - Backbone - 在多个事件后渲染 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29769719/

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