我让Jquery Mobile工作,并且已经找到了让它工作的最佳方法是将它包含在/ client /目录中。所以,我的/ client /目录中有以下文件
的jquery.js jQuery的mobile.js 的jquery-mobile.css
然后我将其包含在我的index.html
中<script type="text/javascript">
$( document ).bind( "mobileinit", function( event, data ){
$.mobile.autoInitializePage = false;
}
</script>
我尝试创建智能包,但由于某种原因,加载顺序使jquery插件无效。我尝试在HEAD中使用引用,但由于某种原因,它确实使jquery插件无效。上面的工作,页面转换,视图渲染,我甚至可以使用Meteor auth分支和渲染订阅。
我现在遇到的问题是当Meteor用数据更新DOM并呈现未使用JQM呈现的数据时。
例如,如果我尝试使用JQM Listview来显示Meteor订阅,它的格式就像常规的无序列表。
这是模板代码。
{{#each get_groups}}
<ul data-role="listview" data-theme="a">
<li>{{name}}</li>
</ul>
{{/each}}
只是呈现项目符号项目。如果我使用像JQM tuts那样的静态数据,那么渲染就可以了。
<ul data-role="listview" data-theme="a">
<li><a href="acura.html">Acura</a></li>
<li><a href="audi.html">Audi</a></li>
<li><a href="bmw.html">BMW</a></li>
</ul>
我怀疑我可能需要调用某种刷新,这意味着我必须在我想象的集合订阅上使用observe。
我在使用自定义登录按钮时遇到同样的问题。我使用模板助手返回Meteor.user()。用户名,该按钮不会被JQM格式化。如果我不使用返回用户名,那么按钮当然会通过JQM找到。
当我尝试访问Handlebars当前用户时,我也遇到了同样的问题。如果我尝试执行以下操作,将加载publicPage。
{{#if currentUser}}
{{>privatePage}}
{{else}}
{{>publicPage}}
{{/if}}
一旦我登录privatePage快速闪烁,然后只是一个白色的屏幕。如果我删除对currentUser的引用,那么我可以登录并使用JQM changePage方法加载privatePage。
$.mobile.changePage("#privatePage");
我只是粗略地理解,但我认为它与JQM如何以及何时格式化渲染数据以及Meteor如何以及何时格式化渲染数据有关。
有没有人对如何让JQM与Meteor表现良好有任何想法?或者如果我甚至打扰并且可能在Meteor旁边使用另一个移动前端?
由于 吊杆