1

这是小提琴。这是我的本地文件内容的要点

如您所见,HTML 和 JavaScript 是相同的,我正在加载相同版本的 jQuery、Handlebars.js 和 Ember.js 库。它在本地按预期工作,但不会在 jsFiddle.net 上呈现应用程序模板。

我在 Web 控制台中看到以下错误:

[19:44:18.202] 错误:断言失败:您必须至少将一个对象和事件名称传递给 Ember.addListener @ https://github.com/downloads/emberjs/ember.js/ember-latest.js:51

顺便说一句,要将要点作为本地 HTML 文件进行测试,请确保在 Web 服务器后面运行它,否则您的浏览器将不会下载 JavaScript 库。如果你有瘦安装(ruby webserver),转到它所在的目录并运行thin -A file start,然后在浏览器中导航到 localhost:3000/jsfiddle-problem.html。

4

2 回答 2

3

如果您将小提琴上的“代码包装”配置设置为“onLoad”以外的选项之一,您的应用程序将正常工作。这是一个例子

原因是 Ember 在 jQuery 就绪事件触发时初始化应用程序(假设您没有将 Ember.Application.autoinit 设置为 false)。将 jsFiddle 的“代码包装”配置设置为“onLoad”,您的应用程序在 jQuery 就绪事件触发后被引入文档,因此在 Ember 自动初始化之后。

请参阅下面来自 ember-latest 的片段,取自撰写本文之日,其中记录了 Ember 自动初始化在传递给 $().ready 的处理程序函数中执行。

if (this.autoinit) {
    var self = this;
    this.$().ready(function() {
        if (self.isDestroyed || self.isInitialized) return;
        self.initialize();
    });
}
于 2012-10-06T17:32:49.180 回答
0

这很奇怪 - 在我禁用自动初始化之前,我无法让你的小提琴工作,特别是你的{{controller.foo}}电话。我猜在使用 jsfiddle 时,应用程序初始化会在看到您的路由器之前启动。我还注意到,即使您将 enableLogging 设置为 true,路由器也没有记录任何输出。

我更新了你的小提琴不使用自动初始化,http://jsfiddle.net/zS5uu/4/。我知道今天发布了一个新版本的 ember-latest,不知道初始化有什么变化。

于 2012-10-06T02:07:53.583 回答