包含库时控制台出错

时间:2012-10-23 20:40:33

标签: javascript ember.js

我开始学习EmberJS,我在控制台中看到了这个错误:

Uncaught TypeError: Cannot call method 'proto' of undefined ember-1.0.pre.min.js:17

似乎只是通过包含库我得到了那个错误。有谁知道我为什么会这样做?

编辑:添加了HTML标记

<!doctype html>

  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

    <title></title>
    <meta name="description" content="">
    <meta name="author" content="">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link rel="shortcut icon" href="/favicon.ico">
    <link rel="apple-touch-icon" href="/apple-touch-icon.png">
    <link rel="stylesheet" href="css/style.css?v=2">

    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
  </head>
  <body>
    <script type="text/x-handlebars">
      {{#view App.MyView}}
        <h1>Hello world!</h1>
      {{/view}}
    </script>

    <!-- The missing protocol means that it will match the current protocol, either http or https. If running locally, we use the local jQuery. -->
    <script src="js/libs/jquery-1.7.2.min.js"></script>
    <script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.2.min.js"><\/script>')</script>
  <script src="js/libs/handlebars-1.0.0.beta.6.js"></script>
  <script src="js/libs/ember-1.0.pre.js"></script>
  <script src="js/app.js"></script>
  </body>
  </html>

app.js文件中还有这个JS:

var App = Em.Application.create();

App.MyView = Em.View.extend({
  mouseDown: function() {
  window.alert("hello world!");
}
});

但它已被删除,并且HTML中的所有模板部分也被删除了,我仍然遇到同样的错误(:

1 个答案:

答案 0 :(得分:1)

来自Ember Documentation

  

每个Ember应用都应该有一个Ember.Application实例。这个   object将作为所有的全局可访问的命名空间   您应用中的其他类和实例

这里的关键是&#34;全球&#34;。这是一个应用程序示例:

window.App = Ember.Application.create();

您的问题是var上的Application.create - 关键字。删除它并添加Window以使错误消失。