Ember.js 由于Prototype.js,余烬中断

Ember.js 由于Prototype.js,余烬中断,ember.js,Ember.js,我正在将我的Ember应用程序嵌入到另一个环境中。Prototype.js正在那里使用。因此,余烬破裂 我读过 JS Bin: 在同一指南中,对禁用原型扩展的影响进行了解释,据说 本机阵列将不再实现观察它们所需的功能。如果禁用prototype extension并尝试将本机数组与模板的{{{each}}助手一起使用,Ember.js将无法检测对数组的更改,并且模板不会随着基础数组的更改而更新 此外,如果尝试将Ember.ArrayController的模型设置为纯本机数组,它将引发异常,因为它

我正在将我的Ember应用程序嵌入到另一个环境中。Prototype.js正在那里使用。因此,余烬破裂

我读过

JS Bin:


在同一指南中,对禁用原型扩展的影响进行了解释,据说

本机阵列将不再实现观察它们所需的功能。如果禁用prototype extension并尝试将本机数组与模板的{{{each}}助手一起使用,Ember.js将无法检测对数组的更改,并且模板不会随着基础数组的更改而更新

此外,如果尝试将Ember.ArrayController的模型设置为纯本机数组,它将引发异常,因为它不再实现Ember.array接口

您可以使用方便的方法Ember将本机数组手动强制为实现所需接口的数组。a:

因此,将您的
型号更改为

App.ApplicationRoute=Ember.Route.extend({
  model:function(){
    return Ember.A(["one","two","three"]);
  }
});
在你的模板中

<ul>
 {{#each model}}
   <li>{{this}}</li>
 {{/each}}
</ul>
    {{{#每个模型}
  • {{this}}
  • {{/每个}}
更新的jsbin:

现在,ember不会抛出错误,但会从其他脚本中抛出一些错误


一旦你解决了这个问题,一切都会好起来。

你是对的。我已经阅读了有关数组的内容,但忘记了使用Ember数组而不是本机数组。但您可以在控制台中看到异常,因为在ember.js中出现了“uncaughtrangeerror:invalidarraylength”。
App.ApplicationRoute=Ember.Route.extend({
  model:function(){
    return Ember.A(["one","two","three"]);
  }
});
<ul>
 {{#each model}}
   <li>{{this}}</li>
 {{/each}}
</ul>