2014-10-15 1 views
1

Я пытаюсь связать (связать двумя способами) какое-то поле моей формы с данными, предоставленными моей моделью просмотра. Когда я связываю простую строку, она работает отлично. Но когда я пытаюсь привязать поле формы к полю массива внутри моей модели просмотра, модификации не рассматриваются моделью представления.ExtJs ViewModel Bind Поле не работает в массиве

Это моя модель

Ext.define('Front.model.User', { 
    extend : 'Ext.data.Model', 
    fields : [{ 
     name : 'id', 
     type : 'int' 
    }, { 
     name : 'name', 
     type : 'string' 
    }, { 
     name : 'email', 
     type : 'string' 
    }, { 
     name : 'last_connection', 
     type : 'date', 
     dateFormat : 'Y-m-d H:i:s' 
    }, { 
     name : 'birth', 
     type : 'date', 
     dateFormat : 'Y-m-d H:i:s' 
    }, { 
     name : 'schedule', 
     type : 'auto' 
    }] 
}); 

Это мой ViewModel

Ext.define('Front.view.user.SheetModel', { 
    extend : 'Ext.app.ViewModel', 
    alias : 'viewmodel.sheet', 
    requires : ['Front.model.User'], 
    data : { 
     currentUser:null 
    }, 
    model : 'Front.model.User' 
}); 

Это моя форма

Ext.define('Front.view.user.Sheet', { 
    extend : 'Ext.form.Panel', 
    requires : ['Front.view.user.SheetController'], 
    controller : 'sheet', 
    viewModel : { 
     type : 'sheet' 
    }, 
    config : { 
     currentUser : null 
    }, { 
     xtype : 'textfield', 
     fieldLabel : 'De', 
     name : 'morningstarttest', 
     width : 60, 
     bind : { 
      value : '{currentUser.schedule.lundi.am.start}' 
     } 
    } 
}); 

Привязать показывает правильное значение: в первый раз, но не обновить, если я изменю значение.

Поле «расписание» в модели представляет собой массив.

Любые идеи, как я мог бы решить эту проблему?

ответ

0

Как ваш код может узнать, какой элемент в массиве привязан? Вам нужно будет сделать что-то вроде:

{currentUser.schedule[0].lundi.am.start} 

Чтобы указать индекс массива. Я не могу вспомнить, если вы можете это сделать, и это потому, что это просто плохой идеей. Я предлагаю переосмыслить то, что вы пытаетесь сделать. Вместо того, чтобы иметь график в качестве поля на вашей модели, посмотрите на ассоциации.

+0

В настоящий момент я пока не состою в этом проекте. Я попробую, как только я снова буду работать над этим. Однако, спасибо за ваш ответ. Это просто заставляет меня думать иначе. – Hydreliox