0

我开始学习 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>

文件中还有这个JS app.js

var App = Em.Application.create();

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

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

4

1 回答 1

1

来自Ember 文档

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

这里的关键是“全球”。这是一个应用程序的示例:

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

你的问题是你的var-keyword Application.create。删除它并添加Window以使错误消失。

于 2012-10-24T06:09:08.053 回答