Ember在路线中定义模型导致错误

时间:2014-08-31 21:33:54

标签: django ember.js django-rest-framework

我对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扩展程序,但它似乎没有帮助这些非常通用的错误,因此任何其他提示将是非常棒的。非常感谢你的帮助。

1 个答案:

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