Bhu*_*kar 25 html javascript json angular
我正在尝试使用textarea打印json对象ngModel.
我做了以下事情:
<textarea style="background-color:black;color:white;" [(ngModel)]='rapidPage' rows="30" cols="120">
</textarea>
Run Code Online (Sandbox Code Playgroud)
我想在textarea中加载json对象.上面的代码是rapidPage在textarea中加载对象,但是它显示textarea值为[object Object].
宾语:
this.rapidPage = {
"pageRows": [
{
"sections": [
{
"sectionRows": [
{
"secRowColumns": [
]
},
{
"secRowColumns": [
{
"colName": "users"
}
]
},
{
"secRowColumns": [
{
"colName": "sample"
}
]
}
],
"width": 0
}
]
}
],
"pageName": "DefaultPage",
"pageLayout": "DEFAULT_LAYOUT",
"editMode": true
};
Run Code Online (Sandbox Code Playgroud)
我想将数据加载为字符串.任何输入?
Ank*_*ngh 24
假设您希望按rapidPage原样绑定,并且只在textArea中编写有效的JSON.
PARSE更改值时,以及STRINGIFY在textarea中显示时,您需要它.在组件代码中执行以下操作
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');
};
}
Run Code Online (Sandbox Code Playgroud)
模板用法:
<textarea style="background-color:black;color:white;" [(ngModel)]='rapidPageValue' rows="30" cols="120">
</textarea>
Run Code Online (Sandbox Code Playgroud)
小智 11
要在Angular 2中绑定textarea值,您可以使用change-function:
<textarea id="some-value" (change)="doTextareaValueChange($event)">{{textareaValue}}</textarea>
Run Code Online (Sandbox Code Playgroud)
export class AppComponent implements OnInit {
private textareaValue = '';
doTextareaValueChange(ev) {
try {
this.textareaValue = ev.target.value;
} catch(e) {
console.info('could not set textarea-value');
}
}
}
Run Code Online (Sandbox Code Playgroud)
<textarea class="form-control"
name="message"
rows="8"
[(ngModel)]="Obj.message"
#message='ngModel'
></textarea>
Run Code Online (Sandbox Code Playgroud)
对于双向绑定,您只需要在textarea标签中添加属性name="message",仅[(ngModel)]可100%使用!
ngModel 工作如果
如果没有,您可以使用以下语法来达到相同的效果
<textarea [value]="strVariableInComponent" (input)="strVariableInComponent = $event.target.value;"></textarea>
Run Code Online (Sandbox Code Playgroud)
除非您真的想要在两者之间进行同步,否则您通常会在完成 json 编辑后实现一个按钮来保存/应用更改。如果是这种情况,您的渲染很容易。
<textarea #textbox>{{ rapidPage | json }}</textarea>
Run Code Online (Sandbox Code Playgroud)
确保上面的行之间没有其他空格或返回字符。
然后是一个传统的按钮,例如。
<a (click)="updateRapidPage(textbox.value)">Apply</a>
Run Code Online (Sandbox Code Playgroud)
我发现这在某些情况下比残酷更好[(rapidPage)]。
您还可以@ViewChild('textbox') input在组件内部使用来访问此变量。
| 归档时间: |
|
| 查看次数: |
66657 次 |
| 最近记录: |