Issue
I am trying to print json object in textarea using ngModel
.
I have done following:
<textarea style="background-color:black;color:white;" [(ngModel)]='rapidPage' rows="30" cols="120">
</textarea>
I want to load the json object in textarea. The above code is loading the rapidPage
object in textarea but its showing textarea value as [object Object]
.
object:
this.rapidPage = {
"pageRows": [
{
"sections": [
{
"sectionRows": [
{
"secRowColumns": [
]
},
{
"secRowColumns": [
{
"colName": "users"
}
]
},
{
"secRowColumns": [
{
"colName": "sample"
}
]
}
],
"width": 0
}
]
}
],
"pageName": "DefaultPage",
"pageLayout": "DEFAULT_LAYOUT",
"editMode": true
};
I want to load the data as string. any inputs?
Solution
Assuming that you want to bind rapidPage
as it is and will only write valid JSON in the textArea.
- You need to
PARSE
it when changing the value, andSTRINGIFY
when showing in textarea.
Do the following in your Component code
rapidPage = {"pageRows":[{"sections":[{"sectionRows":[{"secRowColumns":[]},{"secRowColumns":[{"colName":"users"}]},{"secRowColumns":[{"colName":"sample"}]}],"width":0}]}],"pageName":"DefaultPage","pageLayout":"DEFAULT_LAYOUT","editMode":true};
// your object
get rapidPageValue () {
return JSON.stringify(this.rapidPage, null, 2);
}
set rapidPageValue (v) {
try{
this.rapidPage = JSON.parse(v);}
catch(e) {
console.log('error occored while you were typing the JSON');
};
}
Template Usage:
<textarea [(ngModel)]='rapidPageValue' rows="30" cols="120">
</textarea>
Answered By - Ankit Singh
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.