Javascript 从组件定义调用函数

Javascript 从组件定义调用函数,javascript,extjs,extjs4.2,Javascript,Extjs,Extjs4.2,只是一个简单的问题,当我们定义下面这样的组件时,是否可以调用ExtJS函数来设置默认值?因为,当我在下面尝试时,函数没有赋值 { xtype: 'textfield', fieldLabel: 'DNR TYPE', name: 'DNR_TYPE, value: Ext.getCmp('dnr-type').getRawValue() // here is the function that I want to call and assign the value } 编

只是一个简单的问题,当我们定义下面这样的组件时,是否可以调用ExtJS函数来设置默认值?因为,当我在下面尝试时,函数没有赋值

{
  xtype: 'textfield',
  fieldLabel: 'DNR TYPE',
  name: 'DNR_TYPE,
  value: Ext.getCmp('dnr-type').getRawValue() 
  // here is the function that I want to call and assign the value
}
编辑:

亲爱的朋友,我发现了与表单渲染相关的问题。应用程序启动时,表单将使用默认值初始化。因此,字段值返回为空。当用户从组合框中选择一条记录时,我应该将该值分配给相关的文本字段


现在,当用户从表单中选择一条记录时,是否有任何方法可以再次刷新/重新加载表单?

只要Ext.getCmp('dnr-type')。getRawValue()返回一个字符串,这是可能的…

您可以尝试的一个解决方案是:

{
  xtype: 'textfield',
  fieldLabel: 'DNR TYPE',
  name: 'DNR_TYPE,
  listeners: {
    beforerender: function() {
       this.setValue(Ext.getCmp('dnr-type').getRawValue());
    }
  }
}
如果
Ext.getCmp('dnr-type').getRawValue()
返回值,它将被分配给textfield,否则如果它是空字符串,则textfield将包含空值,并且您不会在textfield中看到值

编辑: 当用户从组合框中选择一条记录时,我应该将该值分配给相关的文本字段

---->您可以更改
组合的
事件的
选择上的textfield值,如:

{
    xtype: 'combo'
    displayField: 'foo',
    valueField: 'bar',
    lsiteners: {
       select: function( combo, records) {
          var rec = records[0]; // records will contain selected records(1 or more)
          var textField = // get textfield using Ext.getCmp()
          textField.setValue(rec.get('modelName'));
       }
    }
}
现在,当用户从表单中选择记录时,是否有任何方法可以再次刷新/重新加载表单


---->我对此不清楚。如果你告诉我这个场景,也许我可以帮你做这件事

为什么不试试看它是否管用?我试过了,它不管用!我想知道我做错了什么。你需要准备一个有效的测试用例。您所说的代码在您发布的内容中没有被引用。@Evantimboli我发现了问题所在。在用户从组合框中选择记录之前呈现的窗体面板。因此,该值没有指定字段。是否有刷新/重新加载表单的方法?使用.getForm().findField('dnr-type').getRawValue()代替getCmp;我编辑了这个问题,如果你不介意的话,请你检查一下好吗?亲爱的Nandkumar,我真的很讨厌这个项目,因为他们不知道自己想要什么。该应用程序有3个卡布局。当用户启动流程时,从第一张卡片开始逐步填写必要的信息。在流程结束时,在最后一张卡片布局中,我应该显示他们所做的总结。最后一张卡片布局出现问题,因为有另一个表单显示选定的记录。我可以理解。这就是为什么适当的架构是必要的,我也经历了同样的过程,但我喜欢我的项目和变化,因为它对我来说从来都不繁忙。:)顺便说一句,如果您有
记录
,您可以使用
表单将记录直接分配给表单。loadRecord(record)
提供的字段的
名称
应该是记录中的字段名称。另请参见
表单.loadRecord(record)
演示