問題タブ [requirejs-text]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
307 参照

javascript - ノックアウト テンプレートが RequireJS と Require Text を使用する IE 8 で機能しない

IE8 を使用している場合、JavaScript でツリー オブジェクトをレンダリングする際に問題があります。HTML ページに階層を記述するには、ノックアウト テンプレートを使用してツリー オブジェクトを再帰的にレンダリングする必要があります。

ノックアウト コンポーネントを使用して、requirejs と require.text を使用して最終結果をレンダリングしています。

コンポーネントは、IE8 を除くすべてのブラウザーで正常に動作しています。IE8 を使用すべきではないことはわかっていますが、これは企業のイントラネット サイトであり、現在すべてのブラウザーを簡単にアップグレードすることはできません。テンプレートを使用して単純なリストに数字のリストのみをレンダリングするようにコードを単純化しました。

test.vm.js の ViewModel は次のとおりです。

test.view.js のビューは次のとおりです。

最後に、コンポーネントを呼び出す HTML ページ:

DOM をブラウジングして確認できる主な違いは、テンプレートが他のブラウザーで完全にレンダリングされることです。

IE8では空です

テンプレート「testTemplate」をビュー ファイルの外に配置し、HTML ページに直接配置すると、コンポーネントが動作し始めます。テンプレートが空であるため、コンポーネントが機能していません。HTMLに「testTemplate」を配置することは部分的な解決策ですが、ビューファイル内に配置すると機能しない理由を見つける必要があります。

更新: シナリオを単純化しました。どうやら、コンポーネント登録の「テンプレート」パラメーターに何らかのバグがあるようです。テンプレートが script タグで囲まれている場合、コンテンツは無視され、ページに表示されません。<template>タグを使用するように変更すると、コンポーネントはテンプレート内のデータ バインディングを解決しようとし、エラーが表示されます。テンプレート タグはバインディングでは無視されるはずですが、コンポーネントはタグを無視しません。テンプレートを textarea タグで囲み、display:none を配置することで、最後に読んだタグをテンプレートで無視するように構成して、一時的なハックを試みました。コンテンツはすべてのブラウザーでレンダリングされるようになりましたが、このソリューションは気に入りません。

0 投票する
3 に答える
1642 参照

html - RequireJS テキスト プラグイン: 他のドメインから HTML を読み込めません

require.js を使用して、別のドメインからいくつかの html を取得したいと考えています。CORS ポリシーではこれが簡単に許可されないことはわかっています。注:すべての JS および CSS ファイル ( require-cssプラグインを使用した css) が他のドメインから読み込まれるように、Web サーバー ( Access-Control-Allow-Origin "*"およびその他のディレクティブを使用) と require.js を構成しました。予想どおり-htmlをフェッチするだけで問題が発生します。しかし、ブラウザーのネットワーク プロトコルでは、html コンテンツも読み込まれていることがわかります。ただし、このコンテンツは require 関数に渡されません! ブラウザはコンテンツを取得しますが、require.js はそれをパラメータとして提供しません...

私の構成:

2 つの注意点:useXhr構成はrequire.js から取得されます。テキスト プラグインはファイル名に「.js」を追加しますが、存在するかどうかに違いはありません。?htmlTemplate パスにa を追加しました。これにより、.jsは URL に追加されず、ブラウザーは html コンテンツをロードしますhtmlTemplate

私に何ができる?require.js オプティマイザーを使用すると、生成されたファイルにこの問題が発生しなくなることを読みました (ただし、機能します...)。しかし、編集ごとに最適化せずに JS を開発する必要があります。

更新:解決策が1つ見つかりましたが、誰かが「正しい」解決策を提供できれば幸いです。

0 投票する
0 に答える
1010 参照

javascript - 未処理の拒否エラー: モジュールの読み込みタイムアウト: template-registry-entry

プラグインを作成しました。そのローカル デモが動作します。

https://github.com/shaunluttin/aurelia-open-id-connect/tree/master/src

ただし、プラグインを別のプロジェクトにインストールすると、この一連の 2 つのエラーで失敗します。これは、open-id-connect-user-block.htmlview/view-model コンポーネントに関する問題です。

キャッチされていない TypeError: plugin.load は関数ではありません

未処理の拒否エラー: モジュールの読み込みタイムアウト: template-registry-entry!aurelia-open-id-connect/open-id-connect-user-block.html_unnormalized2,template-registry-entry!aurelia-open-id-connect/open -id-connect-user-block.html,text!aurelia-open-id-connect/open-id-connect-user-block.html_unnormalized3,text!aurelia-open-id-connect/open-id-connect-user -block.html http://requirejs.org/docs/errors.html#timeout

私たちが試したこと

コンポーネントをグローバル リソースとしてプラグインのconfigure関数に追加します。

消費するアプリケーションのconfigure関数にプラグインを追加します。

消費するアプリケーションのaurelia.jsonファイルにプラグインを追加します。

requirejs/textプラグインを に設定しますstub:false

これにより、404 の新しいエラーが作成されます。

未処理の拒否エラー: src/../node_modules/aurelia-open-id-connect/dist/amd/es5/open-id-connect/open-id-connect-user-block.html HTTP ステータス: 404

私たちが読んだこと

GitHub でこの問題を確認しました:通常の Aurelia プラグインをインストールしています。

  • 2016 年 7 月 3 日、Aurelia CLI は HTML テンプレートを含むプラグインをサポートしません。
  • 7 月 17 日、バージョン 0.16.1 で動作するはずでした。0.18.0 を使用していますが、動作しません。
  • 7 月 28 日、テキストを動的に要求するstub:falseには、textプラグインでの設定が必要ですaurelia.json > build.loader.plugins