如何使用EmberJS直接在控制器上实现Actions?

时间:2014-02-07 23:07:58

标签: ember.js

我正在尝试在控制器上执行操作并收到警告:
弃用:不推荐直接在控制器上实现的操作处理程序,而是支持操作对象上的操作处理程序

如果我使用Em.ObjectController.create(),当我单击我的按钮时,我会收到一条警告,指出必须在延长时间提供操作。但是,如果我使用Em.ObjectController.extend(),当我单击该按钮时,我会收到一条错误消息,指出控制器上没有该操作。

我创建了一个jsBin来查看此

//App.ToolbarController = Ember.ObjectController.create({
App.ToolbarController = Ember.ObjectController.extend({
    model: { fu: "baar" },
    actions: {
        doSomethingUseful: function(data) {
            console.log("doing nothing useful...");
        }
    }
});

1 个答案:

答案 0 :(得分:1)

我看了你的jsBin

如果您将模板作为嵌入式脚本标记而不是编译的手柄功能发布,将来可以更轻松地调试模板。

我已经制作了bin来解决您的问题。

我认为您的问题与您用于创建视图的方法有关。

{{view App.ToolbarView controllerBinding="App.ToolbarController"}}

我不确定这是否正常。

相反,你应该使用渲染助手

{{ render 'toolbar' }}

这样,ember将尝试找到工具栏视图,控制器和模板,并将它们正确连接在一起。