异步加载javascript组件

时间:2016-05-17 19:35:38

标签: javascript knockout.js

这是当前页面的js代码片段。

$('.addon-oauth').each(function(index, elem) {

    var viewModel = new addonSettings.OAuthAddonSettingsViewModel(
        $(elem).data('addon-short-name'),
        $(elem).data('addon-name')
    );
    ko.applyBindings(viewModel, elem);
    viewModel.updateAccounts();
});

和另一个js文件的“updateAccounts()”方法内部是

updateAccounts: function() {
    var self = this;
    var url = '/api/v1/settings/' + self.name + '/accounts/';
    var request = $.get(url);
    request.done(function(data) {
        self.accounts($.map(data.accounts, function(account) {
            return new ExternalAccount(account);
        }));
        $('#' + self.name + '-header').osfToggleHeight({height: 140});
    });
    request.fail(function(xhr, status, error) {
        Raven.captureMessage('Error while updating addon account', {
            extra: {
                url: url,
                status: status,
                error: error
            }
        });
    });
    return request;
}

和“osfToggleHeight”是一个js组件,用于隐藏/折叠这样的长元素列表 enter image description here 但它并不总是有效。有时只有一些列表会被隐藏/折叠,例如 enter image description here 谷歌驱动器列表正确折叠,但不是门捷列表。 我怀疑原因是在返回所有异步请求之前页面已完成加载。有想法该怎么解决这个吗?非常感谢。

0 个答案:

没有答案