Ember选择视图错误:Ember.CollectionView的内容必须实现Ember.Array

时间:2013-07-29 12:06:46

标签: ember.js

我想简单地使用路线中定义的模型渲染Ember选择视图。数据来自灯具适配器。执行此操作时,我收到错误:Ember.CollectionView的内容必须实现Ember.Array - 您传递了App.AuthorsController。

我该如何解决这个问题?

请参阅JSFIDDLE:http://jsfiddle.net/cyclomarc/frvJZ/4/

(在运行应用程序后,单击“作者”链接以使用authorsController数据转到作者路径。

CODE-HTML:

<script type="text/x-handlebars" data-template-name="application">
    <h1>Ember select view</h1>

    {{#linkTo 'authors'}}Authors{{/linkTo}}

    {{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="authors">
     {{view Ember.Select contentBinding="App.AuthorsController"}}
</script>

CODE-JS:

window.App = Ember.Application.create();

App.Router.map(function () {
  this.resource('authors', { path: "/authors" });
});

App.AuthorsRoute = Ember.Route.extend({
  model: function () {
    return App.Author.find();
  }
});

App.AuthorsController = Ember.ArrayController.extend({})


//DATA

//define model for category
App.Author = DS.Model.extend({
    name: DS.attr('string'),
    language: DS.attr('string')
});

App.Store = DS.Store.extend({
    revision: 12,
    adapter: 'DS.FixtureAdapter'
});

App.Author.FIXTURES = [
 {
    id: 1,
    name: 'Luc Verschuren',
    language: 'German'
 },
 {
    id: 2,
    name: 'Patrick Burms',
    language: 'Dutch'
 },
 {
   id: 3,
   name: 'Jean Demeester',
   language: 'French'
 }
];

1 个答案:

答案 0 :(得分:1)

尝试使用content拥有数据的App.AuthorsController属性:

<script type="text/x-handlebars" data-template-name="authors">
 {{view Ember.Select 
   contentBinding="content"
   optionLabelPath="content.name"}}
</script>

工作jsfiddle

希望它有所帮助。