Aar*_*nes 2 jquery coffeescript
我正在使用CoffeeScript类和jQuery,并通过ajax加载另一个HTML页面,反过来,它引用另一个javascript,但是在获取ajax加载页面时看到父页面在脚本中加载的类时遇到了问题:
父页面加载一个javascript文件(从CoffeeScript编译):
<script src="/assets/global.js?body=1" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
在CoffeeScript文件中有一个类:
class App
constructor: ->
...
Run Code Online (Sandbox Code Playgroud)
我使用以下方法加载另一个网页:
$.ajax({
url: '/import/show',
success: (data) =>
$('#content').html(data)
})
Run Code Online (Sandbox Code Playgroud)
该页面反过来引用另一个Coffee/JavaScript文件:
<script src="/assets/import.show.js?body=1" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
当这个加载的javascript文件包含:
alert('test')
Run Code Online (Sandbox Code Playgroud)
警报按预期提出.这表明加载代码正常工作.但是,如果子脚本包含:
app = new App()
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
Uncaught ReferenceError: App is not defined
Run Code Online (Sandbox Code Playgroud)
如果我将代码放在文档就绪函数中,也会发生这种情况:
$(=> a = new App())
Run Code Online (Sandbox Code Playgroud)
有没有人知道我如何在由父页面加载的脚本中使用由通过ajax加载的子页面加载的脚本中的类?
只需将@放在您的班级名称之前.
class @App
Run Code Online (Sandbox Code Playgroud)
这将生成以下内容:
(function() {
this.App = (function() {
...
Run Code Online (Sandbox Code Playgroud)
由于您在窗口为此时定义了类,因此它将是全局可访问的.
| 归档时间: |
|
| 查看次数: |
1608 次 |
| 最近记录: |