在我的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: -------------------------------
答案 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();