활동이 없어 이 대화는 잠겼습니다. 새 게시물을 작성해 주세요.
활동이 없어 이 대화는 잠겼습니다. 새 게시물을 작성해 주세요.
Im creating a custom xtype and Im running into an issue where I cant seem to pull the jcr property and set the default value to the jcr property value each time the page refreshes.
So for example, if I set the defaultValue to Option A and the user select Option B, Option B will be set as the default but once the user refreshes the page, the defaultValue returns to Option A and not Option B. Is there a way where I can set the defaultValue to Option B or in other words to what the user selects?
this.optionsField = new CQ.form.Selection({
type:'select',
hideLabel: true,
defaultValue: 'p',
value: 'p',
fieldDescription: 'Select header tags in semantic order. If no header tag is needed indicate “p”',
options : [
{
value: 'p',
text: 'p'
},
{
value: 'h1',
text: 'h1'
},
{
value: 'h2',
text: 'h2'
}
],
listeners: {
selectionchanged: {
scope: this,
fn: this.updateHidden
}
}
});
this.add(this.optionsField);
},
setValue: function (value) {
this.setValue(this.getValue());
this.optionsField.setValue(this.getValue());
this.hiddenField.setValue(this.getValue());
},
//calls CustomCTAField#getRawValue
getValue: function () {
//console.log("CustomCTAField#getValue");
return this.getRawValue();
},
//this gets the value of each of the following fields
//then puts them into a JSON object which we use later.
//a good example of usage is seen in CustomCTAField#setValue
getRawValue: function () {
return this.optionsField.getValue()
},
updateHidden: function () {
//alert(this.getValue());
// this.hiddenField.setValue(this.getValue());
this.setValue(this.getValue());
}
해결되었습니다! 솔루션으로 이동.
조회 수
답글
좋아요 수
WHen the page refreshes-- the values revert back to the default. However - you can code around this. Like most use cases - CQ allows for a code solution.
In this case -- you can persist the values in a JCR node prop. For example -- when the component dialog with the custom xtype opens - method foo() (an example user-defined method name) is fired that reads the JCR node and gets the value. When the user selects the value, method foo2() updates the JCR node. You then refresh the page. Method foo() is fired again- gets the updated value and sets the field with the user modfied value. That way -- the new value appears.
Hope this helps.
조회 수
답글
좋아요 수
Yes, but in my case, when the user reloads the page and click on the component to open up the dialog; the value of the jcr property is not being set in the optionField object. In our case, I am setting the hiddenField to what the jcr property value but how can I get the optionsField to set the value of the jcr property?
조회 수
답글
좋아요 수
When working at the custom xtype level -- you can set values of fields using event handlers and JavaScript. We have a community article that demonstrates how to dynamically set the value of a field from another field. See:
http://helpx.adobe.com/experience-manager/using/dynamically-updating-aem-custom-xtype.html
조회 수
답글
좋아요 수
WHen the page refreshes-- the values revert back to the default. However - you can code around this. Like most use cases - CQ allows for a code solution.
In this case -- you can persist the values in a JCR node prop. For example -- when the component dialog with the custom xtype opens - method foo() (an example user-defined method name) is fired that reads the JCR node and gets the value. When the user selects the value, method foo2() updates the JCR node. You then refresh the page. Method foo() is fired again- gets the updated value and sets the field with the user modfied value. That way -- the new value appears.
Hope this helps.
조회 수
답글
좋아요 수
But what if I take out the defaultValue and Value properties? Shouldnt the selection revert to the users choice?
조회 수
답글
좋아요 수
Makes sense, is there a method example where I can access the jcr property in JS?
조회 수
답글
좋아요 수