Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在配置中使用loadNetzkeComponent的参数_Javascript_Ruby_Netzke - Fatal编程技术网

Javascript 在配置中使用loadNetzkeComponent的参数

Javascript 在配置中使用loadNetzkeComponent的参数,javascript,ruby,netzke,Javascript,Ruby,Netzke,是否可以将额外参数传递给“loadNetzkeComponent”并在组件配置中使用它们 例如: JavaScript: this.loadNetzkeComponent({name:'Erp::OrderPanel',container:'workspace',params:{orderId:1},scope:this}); 红宝石: class Erp::OrderPanel

是否可以将额外参数传递给“loadNetzkeComponent”并在组件配置中使用它们

例如:

JavaScript:
this.loadNetzkeComponent({name:'Erp::OrderPanel',container:'workspace',params:{orderId:1},scope:this});
红宝石:
class Erp::OrderPanel
我知道,
configuration
方法没有
param
属性,但是有没有类似的方法?

您可以使用会话(或组件会话)存储将参数传递给配置

session[:order_id] = params[:order_id]
然后在配置中:

def configuration(params)
    super.merge(
      scope: { order_id: session[:order_id] }
    )
  end
1) 因为直接从JavaScript传递配置参数是不安全的,所以一种方法是重写父组件(调用loadNetzkeComponent的组件)中的deliver_组件端点,在该端点中可以对传递的参数进行最终安全检查,然后重写组件配置。可在netzke core的测试应用程序中找到这方面的示例:

2) Dmytro建议的方法可能需要在加载子组件之前对父组件进行额外的端点调用。在该端点中,您将在会话中存储require参数——这样,您将确保每次加载的子组件与服务器通信时都记住参数。第一种方法没有提供这一点,因为传递的参数只在加载组件时使用一次,然后“被遗忘”


根据您的要求,从这两个选项中选择一个。

这样就行了。我将添加以下内容:您可能需要在父节点上的单独端点中设置该会话参数,然后在加载NetzkeComponent之前调用它(Ext.Direct将把两个后续端点调用多路复用为一个)。嗨,Denis,感谢您的回复。我不想使用会话来存储此类数据,因此我想找到另一种实现方法。您知道如何在
initComponent
方法中获取这些参数,以便使用网格存储的代理吗?或者我必须创建一个单独的方法(即,
initData
),该方法由
loadNetzkeComponent
的回调调用吗?Paul,那么第一个方法是为您准备的。无论您传递给组件[:您的子组件]的额外参数是什么,都可以在
您的子组件的
initComponent
中的
上访问它们。