【问题标题】:how to pass values from one view to another view extjs?如何将值从一个视图传递到另一个视图 extjs?
【发布时间】:2015-01-27 17:49:55
【问题描述】:

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

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
}); 

我越来越不确定,非常感谢您的帮助。

提前致谢。

【问题讨论】:

    标签: extjs extjs4.2


    【解决方案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 指的是您的窗口类的 instance,因此在类定义(配置语句)中不可用,但您可以在使用 @987654328 初始化类后访问它@函数:

    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 components 添加构造函数逻辑的常规方式。 See this in the docs.

    保留您原来的create 声明:

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

    您可以在create 语句之后访问clickedRule 属性:

    console.log(newWindow.clickedRule);
    

    【讨论】:

    • 实际上我需要将超过 4 个参数传递给 newView 并且还必须在一些 ajax 调用中使用它。我将它放入标题中只是为了检查值,但我的意图是使用它稍后。
    • 我试过你编辑的答案没有用你试过吗?
    • @PriyankGoswami 切换 constructorinitComponent 功能,它会正常工作(见上文) - 测试
    • 好的,非常感谢。我现在在 initComponent 中获得价值。但是我可以把它放在 initComponent 外面吗?
    • @PriyankGoswami 您可以在create 语句之后访问clickedRule 属性(请参阅上面的最后一行)-而不是从配置语句中-只是OOP的性质(请参阅编辑中的第二段)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 2012-07-14
    相关资源
    最近更新 更多