我在将数据加载到表格中时遇到了一些问题。 (加载特定列表项的详细信息)
onProductSelect: function(_dataView, _record)
{
Ext.getCmp('products').push({
title: _record.data.name,
data: _record.data,
styleHtmlContent: true,
xtype: 'productDetails'
});
}
我正在将另一个视图(productDetails)推送到我的productView(这是一个navigationView)。数据(_record.data)可通过
在新的推送视图中使用tpl: '{someField}'
现在我想知道如何将这些数据(字段数据)放到表单的文本字段或按钮(或者像这样)中。
如果有人更了解如何将数据输入视图/表单或如何更改视图(从列表到详细信息),请告诉我们:)
答案 0 :(得分:0)
以下是对您的代码的一些建议:
1.使用Sencha Touch中的下划线(' _')是为了获取/设置/应用/更新的变量。虽然您使用局部变量,但这是最佳实践。
2.单词' _record'希望是一个记录。如果是,那么你应该使用:
name = _record.get('name');
data = _record.getData();
填写表单的最佳方法是使用formpanel并将值添加到formpanel,而所有字段都分配了popper名称:
如果您的数据是:
data = {name: 'Kurt001', password: '12er51wfA!'}
你可以用这个:
Ext.define('App.view.ProductDetails', {
extend: 'Ext.form.Panel',
xtype: 'productdetails',
config: {
cls: 'product-details',
scrollable: null,
layout: 'vbox',
defaults: {
labelAlign: 'top',
clearIcon: false
},
items: [{
xtype: 'textfield',
name: 'name'
}, {
xtype: 'passwordfield',
name: 'password'
}, {
xtype: 'button',
itemId: 'btnLogin'
}]
}
});
要添加数据,只需使用:
Ext.Viewport.down('.productdetails').setValues(data);
替代:
var view = Ext.Viewport.down('.productdetails')
view.down('.textfield').setValue(data.name);
view.down('.passwordfield').setValue(data.password);
替代
view.down('.field[name=name]').setValue(data.name);
view.down('.field[name=password]').setValue(data.password);
要从一个视图获取数据到下一个视图,您可以使用不同的选项:
1.将数据设置为当前视图并从该视图中获取它们。看起来你有一个清单。因此,您可以将数据应用于列表:
view.down('.list').myData = data;
扩展版本是在配置中使用myData创建自定义列表。 这样你就可以使用:
view.down('.list').setMyData(data);
或在你的情况下
_dataview.setMyData(data);
2.使用商店。当您传递记录时,您可能希望将选定字段添加到商店模型中,只需设置标记。