Ember.js 余烬不支持把手';能够在对象上使用每个

Ember.js 余烬不支持把手';能够在对象上使用每个,ember.js,Ember.js,我试图在对象上使用每个辅助对象并接收: Assertion failed: The value that #each loops over must be an Array. You passed [object Object] 使用最新版本的余烬(1.0)和把手。我最好的猜测是Ember还不支持对象上的绑定,这就是引发断言的原因 有人能确认一下吗?首先,您是正确的,余烬本身依赖于作为数组的项目。由于Ember尝试执行,而不是重新渲染/重新计算已完成的项目,因此它会添加一个数组观察者,并观察项

我试图在对象上使用每个辅助对象并接收:

Assertion failed: The value that #each loops over must be an Array. You passed [object Object]
使用最新版本的余烬(1.0)和把手。我最好的猜测是Ember还不支持对象上的绑定,这就是引发断言的原因


有人能确认一下吗?

首先,您是正确的,余烬本身依赖于作为数组的项目。由于Ember尝试执行,而不是重新渲染/重新计算已完成的项目,因此它会添加一个数组观察者,并观察项目一次更改一个,而不是重新渲染整个集合

每个辅助对象本身实际上支持在对象上迭代(键位于对象中)

handlebar.registerHelper('each',函数(上下文,选项){
var fn=options.fn,inverse=options.inverse;
变量i=0,ret=”,数据;
var type=toString.call(上下文);
if(type==functionType){context=context.call(this);}
如果(选项.数据){
data=handlebar.createFrame(options.data);
}
if(context&&typeof context==='object'){
if(数组的上下文实例){

对于(var j=context.length;iWhy您需要这样做?您可以不只是索引您想要的值吗?或者如果您不想使用这些值,您可以将其放入一个数组中?我无法想象将永远支持在对象上使用#each。也许他正试图在对象上循环并打印每个属性及其值?
Handlebars.registerHelper('each', function(context, options) {
  var fn = options.fn, inverse = options.inverse;
  var i = 0, ret = "", data;

  var type = toString.call(context);
  if(type === functionType) { context = context.call(this); }

  if (options.data) {
    data = Handlebars.createFrame(options.data);
  }

  if(context && typeof context === 'object') {
    if(context instanceof Array){
      for(var j = context.length; i<j; i++) {
        if (data) { data.index = i; }
        ret = ret + fn(context[i], { data: data });
      }
    } else {
      for(var key in context) {
        if(context.hasOwnProperty(key)) {
          if(data) { data.key = key; }
          ret = ret + fn(context[key], {data: data});
          i++;
        }
      }
    }
  }

  if(i === 0){
    ret = inverse(this);
  }

  return ret;
});