正如您所看到的,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
BTW-要将gist作为本地HTML文件进行测试,请确保在Web服务器后面运行它,否则您的浏览器将无法下载JavaScript库。如果你已经安装了瘦(ruby webserver),请转到它所在的目录并运行thin -A file start
,然后在浏览器中导航到localhost:3000 / jsfiddle-problem.html。
答案 0 :(得分:3)
如果您将小提琴上的“Code Wrap”配置设置为“onLoad”以外的其中一个选项,您的应用程序将起作用。这是一个example。
原因是当jQuery ready事件触发时,Ember初始化一个应用程序(假设你没有将Ember.Application.autoinit设置为false)。将jsFiddle“Code Wrap”配置设置为“onLoad”后,在jQuery ready事件触发后,应用程序将被引入到文档中,因此在Ember自动初始化之后。
请参阅本文撰写当天的ember-latest下面的代码片段,该文档描述了在传递给$()。ready的处理函数中执行Ember自动初始化。
if (this.autoinit) {
var self = this;
this.$().ready(function() {
if (self.isDestroyed || self.isInitialized) return;
self.initialize();
});
}
答案 1 :(得分:0)
这很奇怪 - 在我禁用autoinit之前,我无法让你的小提琴工作,特别是你的{{controller.foo}}
通话。我猜测在使用jsfiddle时,应用程序初始化开始之前看到你的路由器。我还注意到,即使你将enableLogging设置为true,路由器也没有记录任何输出。
我更新了你的小提琴,不使用autoinit,http://jsfiddle.net/zS5uu/4/。我知道今天发布了一个新版本的ember-latest,我想知道是否有关于初始化的更改。