Facebook からデータを取得する Meteor アプリに取り組んでおり、プレゼンテーションに jquery-layout を使用したいと考えています。jquery を使用してリアクティブ テンプレートの HTML を変更しようとすると、いくつかの「微妙な点」があるのではないかと考えたので、次のような比較的単純なテスト ケースを設定しました (簡潔にするために言い換えています)...
<body>
{{> mainTemplate}}
</body>
<template name="mainTemplate">
{{#with userInfo}}
{{> partialNorth}}
{{> partialWest}}
{{> partialCenter}}
{{> partialEast}}
{{/with}}
{{layItOut}}
</template>
Template.mainTemplate.userInfo は、デフォルト値で始まり、Facebook からの情報で非同期に更新される Session 変数の内容を返します。
Template.mainTemplate.layItOut は、5 行の jquery-layout コードを実際に実行するコールバック fcn を使用して Meteor.defer への呼び出しをセットアップします。
そして、それはかなりうまくいくようです...
最初の表示は期待どおり/意図したとおりです (ただし、ページがレイアウトされていない短い期間があります)
リアクティブ コンテキストが更新されると、レイアウトが再実行されます (ここでも、簡潔だが目に見える再レイアウトが使用されます)。
それで、なぜ私は泣き言を言っているのですか?ほとんどの場合、目立った再レイアウト アクティビティを排除する、よりクリーンなアプローチを見つけたいと考えています。
リアクティブ コンテキストをより細かくすることもできますが、これが本当に役立つかどうかはわかりません。
あるいは、レンダリングを直接制御して実験することもできると思います (たとえば、 Meteor.ui.render() を使用しますが、それは大変な作業のように思えます ;-)
私が本当に好きなのはどちらかだと思います
a) Meteor のレンダリング イベントにフックする方法
またはまだ良い
b)クエリレイアウトをテンプレートに接続するためのよりクリーンな方法
考え?