Предположим, есть два источника данных:

1) /messages — используется для отображения списка сообщений, возвращает только два поля

2) /message/{номер сообщения} — используется для детального отображения сообщения, возвращает все три поля

Каждый источник возвращает немного разные наборы данных. Первый источник возвращает, допустим, два поля, тогда как второй детальный источник дополнительно к первым двум полям возвращает еще одно поле.

Возникает вопрос, каким образом в этом случае лучше реализовать CRUD на ExtJS 4?

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

Для работы с одной записью достаточно только одной модели:

Таким образом, для того чтобы из списка выбрать модель для детального просмотра и редактирования надо загрузить новую модель с конкретным идентификатором messageId:

И связать ее с формой при успешной загрузке:

Для удобства работы с формой создадим отдельный класс-наследник от стандартного класса формы:

Теперь нам достаточно создать форму и передать в нее имя модели и идентификатор или вызвать метод bindModel, форма сама загрузит модель и её данные.

Полностью рабочий пример доступен по ссылке: http://jsfiddle.net/elganz/fgfux