jQuery-Mobile Meteor 示例集成和/或集成指南

15

我对Meteor印象深刻,并希望将其与jQuery Mobile一起使用。我想知道是否已经有人建立了一个示例集成应用程序。如果没有,一些指南会很棒。

敬礼,

Cédric


6
我也对此很感兴趣,并一直尝试将其集成。jQuery Mobile会在加载时初始化页面并修改DOM。然后,Meteor会初始化并向DOM添加自己的HTML,这些会发生冲突。在mobileinit事件中设置$.mobile.autoInitializePage = false;应该可以避免这种情况发生。这就是我所做到的。如果我得到完整的示例/指南,我会更新答案。 - rmarscher
2
简单来说,将jquery.js和jquery-mobile.js放在/client目录中即可。这样它们就会比其他脚本晚加载。不要使用包中的jquery。我尝试过在其他答案中建议的打包jquery-mobile,但由于Meteor的JavaScript加载顺序,我遇到了更多麻烦。 - Kenji Noguchi
3个回答

6
我也很好奇,所以我制作了一个示例应用程序:http://jqmdemo.meteor.com/。它似乎工作得很好。您可以在这里找到源代码:https://github.com/snez/jqm-meteor。但是,在两者结合使用时,有一些需要注意的地方,请参见代码中的注释。更新:看起来 meteor.com 正在推出升级版的 meteor 框架,会破坏旧代码。仅将此项目用作参考,因为使用新版本框架实现相同功能的更好方法。

这个应用程序无法工作。我收到了“更新失败:访问被拒绝”的消息。因此,我无法验证这是否真正解决了@rmarscher提到的问题:如果您打开了两个浏览器,并在其中一个上修改了值,则Meteor将更新HTML并覆盖jQuery移动更改。 - jchook
有关信息,演示的最新可用工作版本位于http://jqmdemo.meteor.com/。 - Andy Lorenz

4

一开始我试图将jQuery Mobile框架文件捆绑到客户端目录中,但无法使其正常工作。Meteor报错于JS文件尝试设置DOCTYPE,即使是examples文件夹中从未被引用的文件也会报错。通过使用CDN托管版本并禁用autoInitializePage(如上评论所述),我成功地使其工作,而不需要访问任何未记录的API。

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
<script type="text/javascript">
     $( document ).bind( "mobileinit", function( event, data ){
          $.mobile.autoInitializePage = false;
     });    
</script>

3
我建议查看 /packages/jquery 文件夹中的 jQuery 包。
它只是将 jquery.js 文件添加到要发送到客户端的文件堆栈中。 如果您需要此功能,可以添加自己的名为 jquery-mobile 的包并包含其所需的文件。
请参阅 package.js 文件以了解其工作原理:
https://github.com/meteor/meteor/blob/master/packages/jquery/package.js

所以,只需将移动文件添加到您的jquery-mobile包中,然后执行类似以下操作的操作:
Package.on_use(function (api) {
  api.add_files('jquery.mobile-1.1.0.min.css', 'client');
  api.add_files('jquery.mobile-1.1.0.min.js', 'client');
});

然后通过使用“Meteor add”将其包含在您的应用程序中,或将其添加到应用程序目录中的“.meteor/packages”文件中。 - jonathanKingston
此外,如果您阅读Meteor开发人员之一N1mmy的回复,他建议API将会更改:https://dev59.com/wmkw5IYBdhLWcg3wJHCF因此,我建议您只需在js文件中将文件本地包含到模板中即可。 - jonathanKingston

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接