javascript - Ember Controller 依赖解析在直接链接上不起作用?

标签 javascript ember.js

我在 Ember 中的 Controller 之间使用依赖关系解析,只要您沿着路线导航,它就可以正常工作。但是,如果您直接链接到具有依赖项的 Controller 的 View ,则它不起作用,并出现以下错误消息:

needs [ controller:productsDetailIndex ] but it could not be found

相应的 Controller :

Pd.ProductsDetailOrderController = Ember.Controller.extend({
    needs: "productsDetailIndex"
});

路由器:

Pd.Router.map(function () {

    this.resource('products', { path: '/products' }, function () {
        this.resource('products.detail', { path: '/:product_id' }, function() {
            this.route('order');
        });

    });
});

Pd.ProductsIndexRoute = Ember.Route.extend({
    model: function () {
        return this.store.all('product');
    }
});

Pd.ProductsDetailIndexRoute = Ember.Route.extend({
    model: function(params){
        return this.store.getById('product', params.product_id);
    }
});

Pd.ProductsDetailOrderRoute = Ember.Route.extend({

});

因此,如果我转到 /products/3 并单击打开 /products/3/oder 的链接,一切都很好。但是如果我直接链接到 /products/3/order 就会出现上述错误。

最佳答案

如果您的逻辑依赖于不在其路径中的 Controller ,那么您就会遇到架构问题。在您的特定情况下,资源位于其路径中,因此您应该将索引 Controller 中的任何逻辑移动到“productsDetail” Controller 中。

Pd.ProductsDetailRoute = Ember.Route.extend({
    model: function(params){
        return this.store.getById('product', params.product_id);
    }
});

Pd.ProductsDetailIndexRoute = Ember.Route.extend({
    model: function(params){
        return this.modelFor('productDetails');
    }
});

关于javascript - Ember Controller 依赖解析在直接链接上不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23785690/

相关文章:

javascript - 在点击链接时防止android chrome中的 "Complete action using..."对话框?

javascript - 你如何在javascript中设置静态路径?

javascript - 在 JavaScript 闭包中使用 Promise 与 Web Worker 一起工作

javascript - 哪个现代 JS 框架允许我使用旧的 XML API?

javascript - 动态输出handlebar emberjs中每个循环内的表达式

javascript - 如何在 ember.js 中对 View 进行单元测试?

javascript - Durandal 为注册页面组合了多个 View

javascript - 使用普通 Javascript 通过它包含的字符串获取元素 ID

javascript - Ember 中的下拉列表;

javascript - createRecord 在捕获错误时创建一个空实例