Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ember.js中的变量控制器_Javascript_Ember.js - Fatal编程技术网

Javascript ember.js中的变量控制器

Javascript ember.js中的变量控制器,javascript,ember.js,Javascript,Ember.js,我对使用Ember.js非常陌生,这让我非常困惑。在ember.js中进行路由时,是否有方法使用变量控制器 我试着解释一下: 我有一个模型列表,需要由不同的控制器控制,并由不同的模板表示。例如:如果我有路径items/:item_id,我想执行以下操作: App.ItemRoute = Ember.Route.extend({ model: function(params) { return items[params.lesson_id]; // edit: should

我对使用Ember.js非常陌生,这让我非常困惑。在ember.js中进行路由时,是否有方法使用变量控制器

我试着解释一下:

我有一个模型列表,需要由不同的控制器控制,并由不同的模板表示。例如:如果我有路径
items/:item_id
,我想执行以下操作:

App.ItemRoute = Ember.Route.extend({
    model: function(params) {
        return items[params.lesson_id]; // edit: should be item_id not lesson_id
    },

    setupController: function(controller, model) {
        controller.set("model", model);
    },

    renderTemplate: function(controller, model) {
        this.render(model.template || "item", {
            controller: model.controller || "ItemController"
        });
    }
});
余烬指南如下: 显示此的用法。使用控制器选项渲染,但当我传入任何内容(即使是
“ItemController”
)时,我收到以下错误:

加载路由时出错:错误:您将控制器:“ItemController”传递到渲染方法中,但找不到此类控制器。


有更好的方法吗?

您应该使用控制器名称,
项目
,而不是
项目控制器
应用程序。必须定义项目控制器

App.ItemRoute = Ember.Route.extend({
    model: function(params) {
        return items[params.lesson_id];
    },

    setupController: function(controller, model) {
        controller.set("model", model);
    },

    renderTemplate: function(controller, model) {
        this.render(model.template || "item", {
            controller: model.controller || "item"
        });
    }
});

使用('item')的
this.controller
为模板指定特定的控制器,并且必须定义该控制器