修正できないスコープ (グローバル変数/名前空間) に問題があります。問題は、Require.js を使用して新しい機能を追加したプロジェクトに、いくつかのレガシー コードがあることです。このレガシー コードは標準<script>
タグを使用して読み込まれますが、新しいコードは Require. Ractive.js を Require に AMD として追加すると、問題が発生します。レガシー コードは Prototype.js をロードするため、Ractive.js と衝突します。
主な問題は、配列の変更を観察するときです。具体的には、パターンオブザーバーで配列を観察すると。
ractive.observe('dataArray.*', function(newValue, oldValue, keypath) {
alert(' status changed from ' + oldValue + ' to ' + newValue);
}, {debug: true, init: false});
オブザーバーを配列に追加しないと、すべてが機能しますが、追加すると、undefined is not a function
prototype.js でエラーが発生します (これは、prototype.js をグローバルから削除すると発生しません)。
もう1つのこれは、パターンオブザーバーを使用しない場合に実際に機能することです。
それで、私の質問は、Require.js を構成して、AMD-s としてロードされたスクリプトのみを使用する方法はありますか? または、言い換えると、グローバル スクリプトを無視するように、AMD スクリプトの範囲を互いにのみに制限しますか?
前もって感謝します。