将JSON对象作为参数从View传递到Controller函数?

时间:2013-08-06 15:13:17

标签: extjs sencha-touch-2 sencha-architect

基本上我有一个名为DummyPanel的面板,现在在dummypanel初始化事件我调用了一个控制器函数,如下所示:

var me = component;
var fieldCollection = 
{
    "Order"      : 'ordNumber',
    "Ref": 'refNumber'
};

me.fireEvent('myControllerFunction','Param1', fieldCollection, 'Param3');

现在我想在函数 myControllerFunction 中获取 fieldCollection JSON对象值,从 fieldCollection 获取值我正在使用以下代码:< / p>

 myControllerFunction(param1, collection, param3)
 {
    Ext.Msg.alert(collection.Order); 
 }

但它不会返回任何东西。所以,请让我知道如何解决这个问题!!

任何评论都会赞赏!!

2 个答案:

答案 0 :(得分:0)

我不太确定这是什么意思“但它不会返回任何东西”,但我会尝试。

因此,您的“DummyPanel”视图具有别名或itemId属性。在你的控制器(在init()函数中),你需要“跟踪”你的视图。例如:

在您看来:

me.fireEvent('myEventName','Param1', fieldCollection, 'Param3');

在您的控制器中:

init:function(){
    var me = this;
    this.control({
        'panel[itemId=your-view-itemId]': { // call your function after event
            myEventName: me.myControllerFunction
        }
    });
    ...
},

...

myControllerFunction: function(...) {
    ...
}

答案 1 :(得分:-2)

不应该

Ext.Msg.alert(collection["Order"])

或者如果你想保持Ext.Msg.alert的方式,那么应该以这种方式定义fieldCollection

var fieldCollection = 
{
    Order : 'ordNumber',
    Ref : 'refNumber'
};