У меня проблема в Ext JS 6.2 при привязке модели представления. Я хочу обновить свою модель автоматически при отправке формы. Это модель моего вида:
Ext.define('..model.OperationProperty', {
idProperty: 'ObjectID',
binding: {
deep: true
},
fields: [
{
name: 'ID',
type: 'integer'
},
{
name: 'Operation',
type: 'auto'
},
{
name: 'OperationForInvoice',
type: 'auto'
}
]
});
Operation и OperationForInvoice - это разные модели.
Я загружаю данные успешно, как;
viewmodel.setData({
operationproperty: operationproperty
});
operationproperty.load();
, и это мой флажок внутри Контейнер.
{
xtype: 'container',
layout: {
type: 'vbox',
pack: 'center',
align: 'middle'
},
items: {
xtype: 'checkbox',
bind: {
data: {
value: '{operationproperty.Operation.IsExplanationNecessary}',
deep: true
}
}
//bind: "{operationproperty.Operation.IsExplanationNecessary}",
//deep: true,
//bind: {
// value: "{showIsExplanationNecessary}"
//}
//bind: {
// Operation: {
// bindTo: '{operationproperty.Operation.IsExplanationNecessary}',
// deep: true
// }
//}
}
и viewmodel выглядит хорошо после загрузки данных. Модели Operation и OperationForInvoice загружены, и мой флажок выглядит отмеченным. Но когда я делаю что-то в своей форме, например сниму флажок, изменение не отображается в модели представления, а объект «Операция» появляется внизу модели представления, в который входит только измененный элемент. Я добавил снимок экрана
Я также ищу "deep: true", но он не работает, или я не могу найти правильный способ его использования. И я попытался использовать формулу в модели представления, я показываю тот же результат, он дает тот же результат.
formulas: {
showIsExplanationNecessary: {
bind: {
bindTo: '{operationproperty.Operation.IsExplanationNecessary}',
deep: true
},
get: function (get) {
return get;
},
set: function (value, type) {
debugger;
this.set('operationproperty.Operation.IsExplanationNecessary', value); //not set the field and add Operation object again
}
}
}
Я надеюсь, что кто-то поможет, спасибо.