Sencha Touch: отображение и редактирование поля HasMany на formpanel - PullRequest
2 голосов
/ 05 марта 2012

Мой вопрос: как отобразить и отредактировать поле hasMany на передней панели sencha touch API

У Sencha touch нет списка или какой-либо другой функции, позволяющей это сделать.

Мой пример

кандидат:

  • firstName: [текстовое поле]
  • фамилия: [текстовое поле]
  • ...
  • список интервьюеров

у кандидата много интервьюеров

Я изучил tpl и xtemplates, но не смог заставить что-либо работать

Моя идея состоит в том, чтобы иметь текстовое поле, которое также функционирует как поиск с ajax с кнопкой добавления (+) рядом с ним, если оно есть, кроме первого текстового поля и кнопки (-).

Даже получить текстовое поле и кнопку для отображения в одной строке кажется трудным

Мои модели:

     Ext.require('Candidates.model.Interviewer', function() {
        Ext.define('Candidates.model.Candidate', {
            extend: 'Ext.data.Model',

            config: {
                fields: [
                    {name: 'id', type: 'string'},
                    {name: 'firstName', type: 'string'},
                    {name: 'lastName', type: 'string'},
                    {name: 'email', type: 'string'},
                    {name: 'dept', type: 'string'},
                    {name: 'room', type: 'string'},
                    {name: 'greet', type: 'string'},
                    {name: 'present', type: 'boolean'},
                    {name: 'date', type: 'date'},
                    {name: 'status', type: 'string'},
                    {name: 'completed', type: 'boolean'}
                ],
                hasMany: {
                    model: 'Candidates.model.Interviewer',
                    name: 'Interviewers'
                }
            },
      });

Интервьюер

    Ext.define('Candidates.model.Interviewer', {
        extend: 'Ext.data.Model',

        config: {
            fields: [
                {name: 'id', type: 'int'},
                {name: 'firstName', type: 'string'},
                {name: 'lastName', type: 'string'},
                {name: 'username', type: 'string'},
                {name: 'password', type: 'string'},
                {name: 'email', type: 'string'},
                {name: 'dept', type: 'string'}
            ]
        }
    });

в элементах fieldset [

    {
        xtype: 'textfield',
        name : 'firstName',
        label: 'First Name',
    },
    {
        xtype: 'textfield',
        name : 'lastName',
        label: 'Last Name',
    },
    {
        xtype: 'textfield',
        name: 'interviewers',
        id: 'interviewerfield',
        label: 'Interviewer(s)',
        tpl: [
            '<div class="candidate">',
                '<tpl for="interviewers">',
                    '<div class="interviewers">',
                        '{firstName}',
                    '</div>',
                '</tpl>',
            '</div>'
        ].join(''),
        store: 'Candidates'
    },

Идея, которую я пытался даже вывести на экран список интервьюеров

У кого-нибудь есть идеи, как отобразить много полей на поле формы?

1 Ответ

0 голосов
/ 12 ноября 2012

Я страдаю от той же проблемы, я нахожу решение с помощью Ext.dataview.DataView вместо использования Ext.List.

...