I have a MAIN MultiField which has a fieldConfig xtype as mywidgetjsname.
In mywidget.js, I have built a CustomMultiFied which extends CQ.form.CompositeField.
In this, I have a hiddenField, a textField and a MultiField(so this is a multiField inside the MAIN multifield).
I have seen many examples over blogs and else where where in the value of the whole customfield is saved in the Hidden Field.
This done using --> this.hiddenField.setValue(this.getValue());
getValue calls getRawValue()....
inside getRawValue() you basically you return this.Field1.getValue() + "|" (some separator) + this.Field2.getValue() + "|" + Field3.getValue() + .....and so on.
The values eventually get saved in the Property = name in the etc/designs/appName/componentName/
Theres another method used in the widget.js for setting the values. This is generally like below:
setValue: function (value) {
var parts = value.split("|"); ---> split based on the separator
this.Field1.setValue(parts[0]);
this.Field2.setValue(parts[1]);
this.Field3.setValue(parts[2]); ........... and so on....
this.hiddenField.setValue(value);
}
Now comes my issue.....In my field-set unlike above, I have a multiple field-set i.e. a MultiField...
On saving values in a desired pattern in the Property = name in the etc/designs/appName/componentName/ i am able to fetch and display values into my Multifield in my widget.
See below my getRawValue function below:
getRawValue: function () {
var txtFld = this.nameField.getValue() + "|"; ---> Here i am saving my TextField
var arr = new Array();
arr = this.NestedMultiField.getValue(); ---> NestedMultiField is my multified inside my widget
var valuesString = '';
for (var i=0; i<arr.length ; i++ )
{
if(i < arr.length-1)
valuesString += arr[i] + "##";
else
valuesString += arr[i];
}
var finalReturnVal = txtFld + valuesString;
return finalReturnVal;
}
on execution of the last line of the getRawValue function {return finalReturnVal;} my values like this "TextFieldValue|MultiFldVal1##MultiFldVal2##MultiFldVal3...." should go and get saved in my property {}............ THIS IS NOT HAPPENING....
When I myself manually save values in a desired pattern in the Property = name in the etc/designs/appName/componentName/ i am able to fetch and display values into my Multifield in my widget. That works because of the below setValue function:
setValue: function (value) {
var parts = value.split("|");
this.nameField.setValue(parts[0]);
var childLinks = parts[1].split("##");
this.NestedMultiField.setValue(childLinks);
this.hiddenField.setValue(value);
}
My widget's multifield's values get perfectly populated as the above function works perfectly......
BUT I AM NOT ABLE TO SAVE VALUES from the dialog. After end of everything only TextField's value gets saved in the property in etc/designs/appName/ComponentName.
This is my first post. Sorry if it is too long. Sorry if it doesnt explain much. Sorry if it explains TOO much..
Thanks in advance.
Solved! Go to Solution.
Views
Replies
Total Likes
Look at this article:
http://helpx.adobe.com/experience-manager/using/creating-aem-multifield-components.html
You can save values in the JCR.
Views
Replies
Total Likes
Look at this article:
http://helpx.adobe.com/experience-manager/using/creating-aem-multifield-components.html
You can save values in the JCR.
Views
Replies
Total Likes