我一直在与摔跤比我承认的时间更长。我正在尝试从本地存储加载一些数据,在路由层将返回的值设置为我的模型,然后使用该内容呈现Ember.Select
。很简单的东西吧?
这是我的路线,我在哪里加载数据:
App.IdentityRoute = Ember.Route.extend({
model: function() {
return new Promise(function(resolve, reject) {
MuttrChat.models.Identity.find({}, function(err, results) {
if (err) {
return reject(err);
}
resolve({ identities: results });
});
});
},
actions: {
ready: function() {
this.transitionTo('inboxes');
}
}
});
好的,很好,这很有效。我的控制器不包含与问题相关的任何内容(只是一个动作),所以我会通过语法高亮来饶死你。这是我试图呈现的模板的片段:
{{#if model.identities}}
<li>
{{view 'select' classNames='topcoat-select' content=model.identities value=selectedIdentity size=6 optionValuePath='content.userID'}}
</li>
{{/if}}
如果查询结果为空(即此块没有运行),一切都很好,但是当我有结果时(这就是重点),Ember会抛出,给我:
错误:断言失败:#each循环的值必须是 阵列。您传递了[[object Object],[object Object]]
这让我疯了,因为那是显然是阵列!我使用Ember.A
和Ember.ArrayProxy
尝试了各种丑陋的黑客攻击,但最终都会导致同样的错误。
这里的任何帮助非常赞赏。
答案 0 :(得分:0)
而且,事实证明,存储适配器返回的结果实际上是不 acual 数组... -.-
谢谢Ember,你一直都是对的。