私は jQuery と組み合わせて CoffeeScript クラスを使用しており、別の HTML ページを ajax を介して読み込んでいます。このページは別の JavaScript を参照していますが、ajax で読み込まれたページを取得して、親ページによってスクリプトに読み込まれたクラスを確認するのに問題があります。
親ページは、javascript ファイル (CoffeeScript からコンパイル) をロードします。
<script src="/assets/global.js?body=1" type="text/javascript"></script>
CoffeeScript ファイルには、次のクラスがあります。
class App
constructor: ->
...
次を使用して別の Web ページを読み込んでいます。
$.ajax({
url: '/import/show',
success: (data) =>
$('#content').html(data)
})
このページは、別の Coffee/JavaScript ファイルを参照しています。
<script src="/assets/import.show.js?body=1" type="text/javascript"></script>
この読み込まれた JavaScript ファイルに次のものが含まれている場合:
alert('test')
予想どおり、アラートが発生します。これは、読み込みコードが正しく機能していることを示しています。ただし、子スクリプトに次が含まれている場合:
app = new App()
エラーが発生します:
Uncaught ReferenceError: App is not defined
これは、コードをドキュメント対応関数内に配置した場合にも発生します。
$(=> a = new App())
親ページによってロードされたスクリプトのクラスを、ajax経由でロードされた子ページによってロードされたスクリプトで使用できるようにする方法を知っている人はいますか?