【问题标题】:Passing JSON object as parameter from View to Controller function?将 JSON 对象作为参数从 View 传递到 Controller 函数?
【发布时间】:2013-08-06 15:13:17
【问题描述】:

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

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

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

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

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

但它不返回任何东西。所以请告诉我如何解决这个问题!

任何评论将不胜感激!

【问题讨论】:

  • Arun,如果您在给出正确答案时标记正确答案,您可能会在问题上获得更多活动。如果您不承认他们的帮助,人们就会开始忽略您的问题。
  • 你能用你的例子做一个 jsfiddle 来突出这个问题吗?这是 sencha-touch2 jsfiddle.net/lozenlin/yU6t6 的 jsfiddle 示例
  • 你是什么意思“它不返回任何东西”?这里没有应该返回任何东西的函数。你的意思是你的事件永远不会触发?你真的在你的面板上创建了这个事件吗? this.addEvents('myControllerFunction') 例如。您可能应该将其命名为更明智的名称,但也许您明白了。无论哪种方式,在事件触发期间单步执行 Ext 代码并查看您在哪里丢失了您的东西都非常简单。

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


【解决方案1】:

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

因此,您的“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(...) {
    ...
}

【讨论】:

  • 这是一个很好的猜测。目前尚不清楚 OP 的侦听器是否在控制器中正确设置。
【解决方案2】:

应该不会吧

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

或者如果你想保持 Ext.Msg.alert 它的方式 fieldCollection 应该这样定义

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

【讨论】:

  • @Fawar JavaScript 允许您使用两种语法。没有真正的区别。检查这个例子jsfiddle.net/89Xb8
  • @Shaunak,不是 JS 方面的专业人士,但我在我正在从事的项目中遇到了一些类似的问题,所以我想有外部因素让我认为它是这样工作的。
  • 这仍然不起作用,我找不到它不起作用的问题。
  • 会不会是因为对象从未被初始化(new())?
猜你喜欢
  • 2019-06-15
  • 2014-09-05
  • 1970-01-01
  • 2020-02-17
  • 2019-02-11
  • 2012-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多