4

私は最近、Durandal.js を使用する SPA アプリに取り組み始めました。いくつかのビューとモデルがあり、さまざまなタイミングでアプリに作成/ロードされます。

例: MyFavorites.js + MyFavorites.html

ビューを css ファイル (この場合はおそらく MyFavorites.css) に「リンク」して、必要に応じてそれを取得し、潜在的にキャッシュを利用できるようにする方法はありますか? または タグを html ファイルに直接配置することもできますが、それは悪い習慣であるという印象を受けています。

4

3 に答える 3

7

デュランダルにはこれに特化したものはありません。ただし、機能に関連付けられている js モジュールの 1 つから使用できる require.js css ローダー プラグインがあります。これを行うにはいくつかの「落とし穴」があると思いますが、動的な css インジェクションが本当に必要な場合は検討する価値があります。

于 2013-04-17T16:10:06.903 に答える
0

ビューのアンカータグに ID またはクラスを配置することが「悪い習慣」である理由がわかりません (CSSlist は ID を求めて叫びますが、それはばかげていると思います)。css が提供するカスケードを使用する非常にエレガントなソリューションのようです。これは、 Head JSが動的に採用したアプローチだと思います。あなたはそれを調べるかもしれませんが、それが Require JS でどれだけうまく機能するかはわかりません。いずれにせよ、手動のアプローチは問題なく機能するはずです。取得できない唯一のことは、関連する css の遅延読み込みです。

もう 1 つのアプローチ (Durandal に含まれている Knockout サンプルで確認できます) は<style type='text/css'>...</style>、ビュー html の上部にセクションを配置することです。これにより、css を個別のファイルに格納しないという犠牲を払って、遅延読み込みが可能になります。

カスタム ビュー スタイルを複数のビューに適用する必要がある場合は、前者のアプローチを使用して DRY を維持することをお勧めします (もちろん、ID の代わりにクラスを使用します)。

また、RequireJS ドキュメントからこれを見てください。

于 2013-06-01T22:07:49.590 に答える