我有这个奇怪的错误在内存运行在窗口上。我正在复制这段代码作为选择
inputs.hbs:
<h1>All inputs</h1>
<input id="register-input-1" type="text" placeholder="username">
<form action="">
{{input type="radio" name="type" value="foo" }}Foo<br>
{{input type="radio" name="type" value="bar"}}Bar
{{input type="text" name="type" placeholder="type in here"}}
{{view "select" content=names}}
</form>主计长:
export default Ember.Controller.extend({
selectedName: 'Tom',
names: ["Yehuda", "Tom"]
});但我知道这个错误:
Uncaught Error: Assertion Failed:
The value that #each loops over must be an Array. You passed [Yehuda,Tom]从这里复制:http://emberjs.com/api/classes/Ember.Select.html
以下是我的遗属:
bower:
{
"dependencies": {
"jquery": "^1.11.1",
"ember": "1.11.0",
"ember-data": "1.0.0-beta.16.1",
"ember-resolver": "~0.1.15",
"loader.js": "ember-cli/loader.js#3.2.0",
"ember-cli-shims": "ember-cli/ember-cli-shims#0.0.3",
"ember-cli-test-loader": "ember-cli-test-loader#0.1.3",
"ember-load-initializers": "ember-cli/ember-load-initializers#0.0.2",
"ember-qunit": "0.3.0",
"ember-qunit-notifications": "0.0.7",
"qunit": "~1.17.1"
}
}包装:
{
"scripts": {
"start": "ember server",
"build": "ember build",
"test": "ember test"
},
"engines": {
"node": ">= 0.10.0"
},
"author": "",
"license": "MIT",
"devDependencies": {
"broccoli-asset-rev": "^2.0.2",
"ember-cli": "0.2.2",
"ember-cli-app-version": "0.3.3",
"ember-cli-content-security-policy": "0.4.0",
"ember-cli-dependency-checker": "0.0.8",
"ember-cli-htmlbars": "0.7.4",
"ember-cli-ic-ajax": "0.1.1",
"ember-cli-inject-live-reload": "^1.3.0",
"ember-cli-qunit": "0.3.9",
"ember-cli-uglify": "1.0.1",
"ember-data": "1.0.0-beta.16.1",
"ember-export-application-global": "^1.0.2",
"ember-disable-prototype-extensions": "^1.0.0"
},
"keywords": [
"ember-addon"
],
"dependencies": {
"ember-cli-babel": "^4.0.0"
},
"ember-addon": {
"configPath": "tests/dummy/config"
}
}发布于 2015-04-20 13:30:39
根据我们的评论,似乎您有原型扩展禁用。简而言之,Ember.js用额外的方法扩展了许多内置的全局对象,比如Array。它这样做是为了符合它的对象模型和观察者系统所需的API。然而,Ember团队意识到,并不是每个人都可以修改内置的对象,因此它拥有禁用这些扩展的对象。这样做的缺点是,Ember仍然需要程序中的所有对象来符合它所需的API。
这就是Ember.A()进来的原因。Ember.A()使用一个普通的旧Javascript数组(还没有启用扩展),并将其包装为一个EmberNativeArray。这确保数组符合所需的API,但不必修改内置的array原型。
长话短说,如果您禁用了原型扩展,就必须在Ember将要使用的每个数组上调用Ember.A()。无论是数组文本(如代码中的),还是从第三方库返回的数组,都必须先调用Ember.A(array),然后才能将其交给Ember。
https://stackoverflow.com/questions/29658313
复制相似问题