1

我正在尝试使用 JQuery Mobile 和 EmberJS 构建一个小型移动应用程序。这实际上是一个 Rhodes 应用程序 (Rhomobile)。

这是我的 Layout.erb:

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title>Todo</title>


        <!-- Ember Libraries -->        
        <script src="/public/js/libs/handlebars-1.0.0.js"></script>
        <script src="/public/js/libs/ember.js"></script>
        <script src="/public/js/libs/ember-data.js"></script>

        <!-- Ember Application -->
        <script src="/public/js/application.js"></script>
        <script src="/public/js/router.js"></script>
        <script src="/public/js/models/todo.js"></script>
        <script src="/public/js/controllers/todos_controller.js"></script>




        <script type="text/javascript">
            $(document).bind("mobileinit", function(){    
                $.mobile.loadingMessage = false;
                $.mobile.loadingMessageDelay = 300; // in ms
                $.mobile.defaultPageTransition = 'none';
                $.mobile.defaultDialogTransition = 'none';
                $.mobile.ajaxEnabled = false;
                $.mobile.pushStateEnabled = false;
                $.mobile.loadingMessageDelay = 50; // in ms
            });
        </script>
        <link rel="stylesheet" href="/public/jqmobile/jquery.mobile-1.3.1.min.css">
        <link rel="stylesheet" href="/public/css/jqmobile-patch.css">
        <script src="/public/jqmobile/jquery.mobile-1.3.1.min.js"></script>
        <script src="/public/js/jqmobile-patch.js"></script>

</head>

<body data-platform="<%= Rho::System.getProperty('platform') %>">
    <%= @content %>
</body>

</html>

如您所见,我已禁用 Ajax 和 PushState 等。这是我的 index.erb:

  <script type="text/x-handlebars" data-template-name="todos">
    <div data-role="page">
        //My Template
      </div>
  </script>

现在当我尝试它时,我只是得到一个空白的灰色页面。但控制台或 Ember-Console(Chrome 的扩展)中没有错误。它甚至可以正确检测到我的视图和控制器。

然后我尝试评论 JqueryMobile CSS 文件,我得到的是一个页面的高度,带有“正在加载”消息的空白空间,然后我在下面看到我的应用程序,它工作正常。如果我删除 JqueryMobile JS,我会得到这些东西,但它没有样式。

问题是什么?

4

1 回答 1

0

如果没有看到您的应用程序的更多代码,这很难说。如果您只定义了一个模板 ( 'todos'),Ember 可能不知道如何启动您的应用程序的渲染。您可能需要定义一个'application'模板。它可能很简单:

<script type="text/x-handlebars" data-template-name="application">
  {{outlet}}
</script>
于 2013-09-25T21:00:31.063 回答