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;
});