我有一个控制器,我想将一个简单的字符串值传递给下一个View。
为此,我正在创建这样的视图。
var nextView = Ext.create('MyApp.view.NextView', {
content: 'value'
});
Ext.Viewport.add(nextView);
Ext.Viewport.animateActiveItem(nextView, {
type: 'slide',
direction: 'left'
});
在 NextView 上,我有一个标签,我想将标签的HTML
属性设置为我从控制器传递的值。即。 value
。
我的 NextView 看起来像这样。
Ext.define('MyApp.view.NextView', {
extend: 'Ext.form.Panel',
config: {
content: 'null',
items: [{
xtype: 'label',
html: 'value'
}]
}
});
我不知道如何从这里开始。我不能将NextView作为表单。我只需要在这种情况下传递一个字符串值。
实现这一目标的最佳方式是什么?
答案 0 :(得分:8)
使用initialize
方法访问配置数据,如下所示:
Ext.define('MyApp.view.NextView', {
extend: 'Ext.form.Panel',
config: {
content: 'null',
items: [
{
xtype: 'label',
html: 'value'
}
]
},
initialize : function(){
this.callParent();
var val = this.config.content;
this.down('label').setHtml(val);
}
});
PS 随意在down
功能中使用您喜欢的选择器
答案 1 :(得分:4)
我知道问题已得到解答。但我只是挖掘了一种非常自然的方式将数据从控制器传递到视图(使用视图的构造函数)。我在将Web桌面集成到我的应用程序时使用了这个。
在控制器中,将数据传递给视图的构造函数,如下所示:
loiTab = Ext.create('Iip.view.giips.admission.DetailedLoiTab', {closable: true, selectedLoiData: selected[0].data});
在视图中,按如下方式启动构造函数:
constructor: function(selectedLoiData) {
Ext.applyIf(this, selectedLoiData);
this.callParent();
},
以下方法与构造函数位于同一文件中。您可以从构造函数所在的视图中的任何位置访问selectedLoiData:
initComponent: function(){
console.log(this.selectedLoiData);
}