Ember.js中的简单console.log控制器操作方法

时间:2014-05-29 03:20:51

标签: javascript jquery ember.js ember-cli

在我的application.js controller中,我有以下行动:

export default Ember.ObjectController.extend({
    //------------------------------------------------------------
    currentPathChanged: function () {
        window.scrollTo(0, 0);
    }.observes('currentPath'),
    //------------------------------------------------------------
    actions: {
        //------------------------------------------------------------
        pageBlock: function(desc_text){
            if(typeof desc_text === 'undefined'){
                desc_text='Processing';
            }
            $.blockUI.defaults.css = {};
            $.blockUI({message: desc_text});
        },
        pageUnBlock: function(){
            $.unblockUI({fadeOut:200});
        }
        //------------------------------------------------------------
    }
    //------------------------------------------------------------
});

由于我是调试Emberjs应用程序的新手,我如何从控制台调用这些操作?基本上我想确认它们正常工作,并希望将它们连接到子视图。

我正在使用ember cli项目来构建我的ember应用程序。

此帖发布时的当前设置:

DEBUG: -------------------------------
DEBUG: Ember      : 1.5.1
DEBUG: Ember Data : 1.0.0-beta.7+canary.b45e23ba
DEBUG: Handlebars : 1.3.0
DEBUG: jQuery     : 2.1.1
DEBUG: -------------------------------

2 个答案:

答案 0 :(得分:0)

创建它的实例。创建实例时,actions哈希值将移至_actions

foo = App.ApplicationController.create();

foo._actions.pageBlock();

我个人通常只是在应用程序模板上抛出一个按钮

<button {{action 'pageBlock' foo}}>Block action</button>

http://emberjs.jsbin.com/lorocere/1/edit

此外,通过在调试器工具的Ember选项卡中单击应用程序控制器的$ E,您可以使用Ember Inspector轻松获取控制台中控制器的实例。 https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi?hl=en

答案 1 :(得分:0)

我希望能找到更好的答案,但这就是我的表现。首先,使用调试器输出查找应用程序视图ID。然后,您可以在console.log中运行以下命令:

foo = Ember.View.views['ember277'].get('controller');
foo._actions.pageBlock();
foo._actions.pageUnBlock();

我引用的帖子是Ember-JS-Best-Practices-helpful-debugging-tools