我正在准备一个非常基本的 Backbone 应用程序,使用 jQuery Mobile 作为 UI 和 Backbone(使用 RequireJS)作为其余部分。
我使用以下项目作为基础: https ://github.com/fiznool/mobile-backbone-boilerplate
并使用 Christophe Coenraets 指南来使用 jQuery Mobile 和 Backbone: http ://coenraets.org/blog/2012/03/using-backbone-js-with-jquery-mobile/
并找到了一些很好的信息,例如在这里: jquery mobile require.js 和主干
但是,我在新生成的内容和样式方面遇到了很多问题:更多的是具有多个 uri 段的页面(例如:/movie/1)。
我更改视图的方法如下所示:
var changeView = function(newView) {
newView.render();
newView.$el.addClass("ui-page").attr('data-role', 'page');
$(container).append(newView.$el);
$.mobile.changePage(newView.$el, {changeHash:false});
};
页面实际上发生了变化,但看起来没有任何样式。我通过在 jquery.mobiile.config.js 文件中使用以下代码找到了解决方案:
$(document).bind('pagechange', function(e) {
$('.ui-page-active .ui-listview').listview('refresh');
$('.ui-page-active').page("destroy").page();
});
但是,样式应用得很晚(在呈现页面之后,比如 500 毫秒之后)。
有没有更好的解决方案?