1

私は 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 認証ブランチとレンダリング サブスクリプションを使用することもできます。

私が今抱えている問題は、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>

ある種の更新を呼び出す必要があるのではないかと思います。つまり、私が想像するコレクション サブスクリプションで監視を使用する必要があります。

カスタムログインボタンで同じ問題が発生しています。テンプレート ヘルパーを使用して Meteor.user().username を返しますが、ボタンが JQM によってフォーマットされません。ユーザー名を返さない場合、ボタンはもちろんJQMを介して検索をレンダリングします。

Handlebars の現在のユーザーにアクセスしようとすると、同じ問題が発生します。次のようにしようとすると、publicPage が読み込まれます。

{{#if currentUser}}
   {{>privatePage}}
{{else}}
   {{>publicPage}}
{{/if}}

ログインすると、privatePage がすばやくちらつき、白い画面になります。currentUser への参照を削除すると、ログインして JQM changePage メソッドを使用して privatePage をロードできます。

$.mobile.changePage("#privatePage");

大まかな理解しかありませんが、JQM がレンダリング用にデータをフォーマットする方法とタイミングと、Meteor がレンダリング用にデータをフォーマットする方法とタイミングに関連していると思います。

JQM を Meteor で適切に動作させる方法について、誰かアイデアはありますか? それとも、Meteor と一緒に別のモバイル フロント エンドを使用する必要があるのでしょうか?

ありがとうスティーブ

4

1 に答える 1

1

データが変更されたときに更新する必要があります。Meteor と JQM を使用した完全なサンプル アプリを次に示します。

http://jqm.meteor.com/

ソースコードはこちら:

https://github.com/snez/jqm-meteor

17行目と38行目で、要素がレンダリングされるときに、要素を更新してカスタム イベントを再バインドする必要があることに注意してください。

于 2012-10-20T17:49:53.993 に答える