0

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

我该如何解决这个问题?

见 JSFIDDLE:http: //jsfiddle.net/cyclomarc/frvJZ/4/

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

代码-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>

代码-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'
 }
];
4

1 回答 1

1

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

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

工作jsfiddle

希望能帮助到你。

于 2013-07-29T12:23:26.407 回答