From 4d1d1a75ce125713b9f0c2ed0a56318fcc993462 Mon Sep 17 00:00:00 2001 From: Alan Boudreault Date: Thu, 24 Apr 2014 15:54:23 -0400 Subject: [PATCH 1/2] Wait that all resources are loaded and fragments rendered before initializing the xblock --- cms/static/js/views/xblock.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/cms/static/js/views/xblock.js b/cms/static/js/views/xblock.js index 0a7f3ce4bb..e9fcdec6cc 100644 --- a/cms/static/js/views/xblock.js +++ b/cms/static/js/views/xblock.js @@ -25,18 +25,23 @@ define(["jquery", "underscore", "js/views/baseview", "xblock/runtime.v1"], }, handleXBlockFragment: function(fragment, options) { - var wrapper = this.$el, + var self = this, + wrapper = this.$el, xblockElement, success = options ? options.success : null, - xblock; - this.renderXBlockFragment(fragment, wrapper); - xblockElement = this.$('.xblock').first(); - xblock = XBlock.initializeBlock(xblockElement); - this.xblock = xblock; - this.xblockReady(xblock); - if (success) { - success(xblock); - } + xblock, + fragmentsRendered; + + fragmentsRendered = this.renderXBlockFragment(fragment, wrapper); + $.when(fragmentsRendered).done(function() { + xblockElement = self.$('.xblock').first(); + xblock = XBlock.initializeBlock(xblockElement); + self.xblock = xblock; + self.xblockReady(xblock); + if (success) { + success(xblock); + } + }); }, /** From 901920b0cd75607ed87bf6fc11f93381a6225631 Mon Sep 17 00:00:00 2001 From: Alan Boudreault Date: Fri, 25 Apr 2014 11:51:08 -0400 Subject: [PATCH 2/2] no need for $.when() here.. --- cms/static/js/views/xblock.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cms/static/js/views/xblock.js b/cms/static/js/views/xblock.js index e9fcdec6cc..7b2a0dff57 100644 --- a/cms/static/js/views/xblock.js +++ b/cms/static/js/views/xblock.js @@ -33,7 +33,7 @@ define(["jquery", "underscore", "js/views/baseview", "xblock/runtime.v1"], fragmentsRendered; fragmentsRendered = this.renderXBlockFragment(fragment, wrapper); - $.when(fragmentsRendered).done(function() { + fragmentsRendered.done(function() { xblockElement = self.$('.xblock').first(); xblock = XBlock.initializeBlock(xblockElement); self.xblock = xblock;