【问题标题】:How do I implement Actions directly on controllers with EmberJS?如何使用 EmberJS 直接在控制器上实现操作?
【发布时间】:2014-03-05 13:17:40
【问题描述】:

我正在尝试在控制器上执行操作并收到警告:
弃用:直接在控制器上实现的动作处理程序已被弃用,取而代之的是动作对象上的动作处理程序

如果我使用 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...");
        }
    }
});

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    我看了你的 jsBin

    首先,如果您将模板发布为嵌入式脚本标签而不是编译的把手功能,那么将来调试模板会更容易。

    我创建了一个bin 来解决您的问题。

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

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

    我不确定这是否正常工作。

    你应该使用渲染助手

    {{ render 'toolbar' }}
    

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

    【讨论】:

    • 感谢您的建议和回答! This post 解释了视图和渲染助手之间的区别。我一定把帮手弄混了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 2016-06-23
    相关资源
    最近更新 更多