首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >成员选择视图不理解数组

成员选择视图不理解数组
EN

Stack Overflow用户
提问于 2015-04-15 18:44:36
回答 1查看 132关注 0票数 1

我有这个奇怪的错误在内存运行在窗口上。我正在复制这段代码作为选择

inputs.hbs:

代码语言:javascript
复制
<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>

主计长:

代码语言:javascript
复制
export default Ember.Controller.extend({
  selectedName: 'Tom',
  names: ["Yehuda", "Tom"]
});

但我知道这个错误:

代码语言:javascript
复制
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

以下是我的遗属:

代码语言:javascript
复制
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"
  }
}

包装:

代码语言:javascript
复制
{

  "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"
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29658313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档