【发布时间】:2014-05-12 01:44:35
【问题描述】:
我希望能够在<textarea> 元素中编辑和显示复杂模型。这是用于从 JSON 响应动态生成模型字段的 HTML 片段:
<p>parent uuid*: </p>
<input ng-model="parentUuid" capitalize type="text" placeholder="String"
class="form-control" style="width:200px; display: inline-block;"/> <br/>
<p>resource*:</p>
<select ng-model="childResource" ng-change="loadResourceFields(childResource)"
class="form-control" style="width:300px; display: inline-block;">
<option ng-repeat="childResource in restResources">{{childResource}}</option>
</select>
<div ng-repeat="field in childFields">
<div ng-show={{!field.isEnum}}>
<p ng-show={{field.isRequired}}>{{field.name}}*: </p>
<p ng-show={{!field.isRequired}}>{{field.name}}: </p>
<input type="text" ng-model="createChildResource[field.name]"
class="form-control" style="width:200px; display: inline-block;" placeholder="{{parseClassName(field.type)}}">
</div>
<div ng-show={{field.isEnum}}>
<p ng-show={{field.isRequired}}>{{field.name}}*: </p>
<p ng-show={{!field.isRequired}}>{{field.name}}: </p>
<select ng-model="createChildResource[field.name]" class="form-control" style="width:auto; display: inline-block;">
<option></option>
<option ng-repeat="enumValue in field.enumValues" label={{enumValue.name}}>{{enumValue.ordinal}}</option>
</select>
</div>
</div>
<div class="preview">
<p>Preview: </p>
<textarea style="height:350px; width:550px; overflow:scroll;">{{createChildResource | json}}</textarea >
</div>
输出如下:
但是,如果我尝试将 ngModel 添加到 textarea 元素以便能够像这样编辑这些值:
<div class="preview">
<p>Preview: </p>
<textarea ng-model="createChildResource" style="height:350px; width:550px; overflow:scroll;">{{createChildResource | json}}</textarea>
</div>
那么输出如下:
在这两种情况下,我都无法在 textarea 元素中编辑模型。
如何做到这一点?我希望能够像在 this example 中一样就地显示和编辑我的模型,但略有不同:editable-textarea="user.description" 应该是 editable-textarea="user"。
【问题讨论】:
-
createChildResource是一个对象,因此在文本区域内显示为一个对象。尝试将对象转换为字符串 - 也许是JSON.stringify(),您应该会看到内容。 -
我会试一试,如果有帮助,请告诉您。谢谢
-
是的,现在我可以看到一个对象的内容,但我仍然无法更改它。
-
您的意思是更改没有反映在控制器或视图的其他区域中,或者文本区域被禁用并且您无法编辑内容?
-
视图没问题,但如果我尝试更改 textarea 内的任何内容 - 对象字段就不会更新。
标签: javascript json angularjs object