mercredi 3 juin 2015

ember: Strange behaviour on {{#each ..}} with itemController

At one of our many emberjs-apps I'm running into problems while updating from an old AppKit structure to ember-cli 0.2.6 with ember 1.12.1. In this project every {{#each item in myarray itemController="my-item"}}raises:

Uncaught Error: Assertion Failed: The value that #each loops over must be an Array. You passed monopoto@controller:array:, but it should have been an ArrayController

To get to the essence I simplified things to:

foo.js:

export default Ember.Controller.extend({
   myData: [1,2,3]
});

foo.hbs:

{{#each item in myData}}
  {{item}}
{{/each}}

This works fine and delivers: 123

If I add an item controller like this:

foo-item.js:

export default Ember.Controller.extend({
   foo: function(){
      return "bar" + this.get("model");
   }.property("model")
});

and modify the {{each}} to use that controller:

{{#each item in myData itemController="foo-item"}}
  {{item.foo}}
{{/each}}

the error occurs.

I did the same on another ember project and everything works fine with using an item-controller like this. I testet this with serveral ember versions on both projects. One fails always and the other one works always. Any Ideas?




Aucun commentaire:

Enregistrer un commentaire