2

我在将数据加载到我推送 onSelect 的表单中时遇到了一些问题。(加载特定列表项的详细信息)

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}'

现在我想知道如何将这些数据(字段数据)放入表单的文本字段或按钮(或类似的东西)中。

如果有人更好地了解如何将数据放入视图/表单或如何更改视图(从列表到详细信息),请告诉我:)

4

1 回答 1

0

以下是对您的代码的一些建议:

1.在 Sencha Touch 中使用下划线 ('_') 用于具有 get/set/apply/update 的变量。尽管您使用的是局部变量,但这是最佳实践。

2.单词'_record'希望是一个记录。如果是这样,那么您应该使用:

name = _record.get('name');
data = _record.getData();

填写表单的最佳方法是使用表单面板并将值添加到表单面板,而所有字段都分配了一个弹出器名称:

如果您的数据是:

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.使用商店。当您已经传递一条记录时,您可能希望将选定的字段添加到您的商店模型并简单地设置标志。

于 2016-03-19T20:03:17.833 回答