我对Ember很新,我正在尝试设置一个显示外部模型(产品)信息的模板。所以我有一个管理路线:
App.AdminRoute = Ember.Route.extend({
model: function() {
var admin_brand = this.store.find('brand', 1);
return this.store.find('product', {brand: admin_brand});
}
});
控制器:
App.AdminController = Ember.ArrayController.extend({
});
和模板:
<script type="text/x-handlebars" data-template-name="admin">
<div class="row">
{{#each}}
{{name}}
{{/each}}
</div>
</script>
但是我收到了一个JS错误:
Error while processing route: admin undefined is not a function TypeError: undefined is not a function
我也使用ember-data-django-rest-adapter作为我的实际数据(否则看起来工作正常)。如果我在路径中传递一个静态的对象数组,它可以正常工作。关于我做错了什么的任何想法?此外,这甚至是正确的方法吗?最后,有没有更好的方法来调试这些类型的问题?我有Chrome扩展程序,但它似乎没有帮助这些非常通用的错误,因此任何其他提示将是非常棒的。非常感谢你的帮助。
答案 0 :(得分:1)
假设您正在使用余烬数据......
问题是对this.store.find('brand', 1)
的调用会返回一个promise,而不是一个值。要使用this.store.find('product', {brand: admin_brand})
调用中的值,您需要使用.then()
来访问已解析的值。
这样的事情应该有效。
App.AdminRoute = Ember.Route.extend({
model: function() {
var self = this;
return self.store.find('brand', 1).then(function(admin_brand){
return self.store.find('product', {brand: admin_brand})
});
}
});