如何将值从一个视图传递到另一个视图extjs?

时间:2015-01-27 17:49:55

标签: extjs extjs4.2

我正在尝试将值从一个视图传递到另一个视图,下面是我到目前为止尝试但没有运气的代码,

view1.js

var newWindow = Ext.create( 'newView', {"clickedRule" : clickedvalue} );
    signerWindow.show();

newView.js

Ext.define('newView', {
      extend : 'Ext.window.Window',
          id : 'newWindow',
 constructor : function (clickedRule){
                 Ext.applyIf(this, clickedRule);
                    this.callParent();
               },         
    requires : ['Ext.form.Panel'],
       title : 'Title Selection'+ this.clickedRule
}); 

我未定义,非常感谢您的帮助。

提前致谢。

1 个答案:

答案 0 :(得分:1)

Ext.create中执行此操作:

var newWindow = Ext.create( 'newView', {
    clickedRule : clickedvalue, 
    title       : 'Title Selection ' + clickedValue
});
newWindow.show();

并丢失了该类的title配置:

Ext.define('newView', {
      extend : 'Ext.window.Window',
          id : 'newWindow',
 constructor : function (clickedRule){
                 Ext.applyIf(this, clickedRule);
                    this.callParent();
               },         
    requires : ['Ext.form.Panel']
});

根据评论进行修改:

在这种情况下,你必须将它放在initComponent函数中:

this是指您的窗口类的实例,因此在类定义(config语句)中不可用,但您可以在使用该类初始化类后访问它initComponent功能:

Ext.define('newView', {
      extend : 'Ext.window.Window',
          id : 'newWindow',
initComponent: function (){

                 var clickedRule = this.clickedRule; 

                 // title can also be defined here
                 this.title = 'Title Selection ' + clickedRule;

                 this.callParent();
               },         
    requires : ['Ext.form.Panel']
});

initComponent是向ExtJS 组件添加构造函数逻辑的常用方法。 See this in the docs.

保留原始create声明:

var newWindow = Ext.create( 'newView', {clickedRule : clickedvalue} );

您可以在clickedRule声明之后访问create媒体资源:

console.log(newWindow.clickedRule);