Ответы пользователя по тегу ExtJS/Sencha
  • ExtJS Новая модель, сейв и hasMany связь

    styv
    @styv Автор вопроса
    Некогда было ответить на свой же вопрос, но вот решение, которое было применено:
    https://gist.github.com/yuristrelets/9b543be8cd8af...

    Немного поясню:
    В copyFrom скопирован “оригинальный” код метода, хотя можно было бы вызвать callParent, но тогда пришлось бы опять повторить все проверки.
    Код метода updateHasManyAssociations достаточно прост, он принимает единственный аргумент - id новой модели.
    Здесь проходим по всем ассоциациям модели, но “реагируем” только на тип hasMany. Дальше обновляем поле с внешним ключом (хранится в переменной foreignKey) для всех записей связанного стора. Это необходимо для записей, которые уже находятся в сторе.
    Для того, чтобы внешний ключ устанавливался автоматически для записей, которые будут добавлены позже мы ищем свойство modelDefaults стора и обновляем в нем свойство с именем внешнего ключа. Объект modelDefaults хранит все дефолтные значения для добавляемых моделей и используется в методе insert стора.
    Ну и последний этап - обновляем значение фильтра для связанного стора, это может пригодится для дальнейшей его перезагрузки.
    Ответ написан
    Комментировать