Backbone和jQuery Mobile:以编程方式提供新内容和样式的问题

时间:2012-09-21 05:52:25

标签: jquery-mobile backbone.js requirejs

我正在准备一个非常基本的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 and backbone

但是,我对新生成的内容和样式存在很多问题:对于具有多个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();
});

但是,样式应用得很晚(在页面渲染之后,如500ms之后)。

有更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

好吧,我选择删除jQuery Mobile,然后自己设置我的组件样式。

我喜欢jQuery Mobile,之前我曾在几个应用程序中使用它,但更有可能的决定是因为使用jQuery Mobile时应用程序感觉太重了,我只需要10%的jQuery Mobile。