<headlines jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/foundation/form/multifield" fieldDescription="Click 'Add field' to add new content dropdown." fieldLabel="Headlines">
<field jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/foundation/form/textfield" required="true" name="./headlines" />
In the SPA editor, I can update the authoring dialog fields for both multifields and can see the changes reflected in the JCR through CRX. What I do not see is updates to Multifield One in the model.json. But I can see updates to Simplified Multifield updating in the model.json.
I'm curious... Why do complex multifields get ignored by the Model.json (provided by JS SDK)?
It seems that, by default, direct properties on the resource are exported, which is why you see other components working just fine. But for a composite multifield, the data is saved as child node, and the default exporter does not handle that. I assume because it assumes it's an irrelevant node.
basically, you do need to implement a sling model for your component, and add exporter annotations. Then grab the child nodes (saved by multifield) and export them.
Multifield data won't be available in JSON exported by default.
You need to create a separate class for the fields which are there in multifield, Inject the resource of the multifield in the main model class and adapt the multifiled java class in the main model class.
I'm not sure this is actually related to the SPA editor, it could be a number of things.
To make this easier for us to debug and help. could you create a simple empty component, maybe in we-retail project, with a sample dialog that does not provide you the desired model.json output, then package that component?
We can then install that sample component and play with it locally to determine the issue you are seeing.