在Ember.js中,我有一个返回AJAX的页面,格式为:
{
"foo": [
{
"foo1": "1",
"foo2": "2"
}
],
"bar": [
{
"bar1": "1",
"bar2": "2"
}
]
}
这是由:
加载App.PostsRoute = Ember.Route.extend({
model: function(params) {
return jQuery.post('http://url/ajax', {
s: params.query,
}, function(){}, 'json');
}
});
但Ember会抛出错误(即使只使用静态内容模板):
Error while processing route: posts undefined is not a function TypeError: undefined is not a function
at m.extend._setupArrangedContent (http://cdnjs.cloudflare.com/ajax/libs/ember.js/1.6.0/ember.min.js:13:29556)
at ...
TypeError: undefined is not a function
at m.extend._setupArrangedContent (http://cdnjs.cloudflare.com/ajax/libs/ember.js/1.6.0/ember.min.js:13:29556)
at ...
如果未返回任何内容,则仅加载静态内容模板。这让我相信错误是在JSON格式中,但JSON在http://tryhandlebarsjs.com/
中工作答案 0 :(得分:1)
在创建问题的jsbin时,我发现Posts的ArrayController导致了这个问题--Ember一定期待一个元素数组,并给它一个非数组模型导致错误。