【问题标题】:I need to pre-fill a <textarea> with a json item我需要用 json 项预填充 <textarea>
【发布时间】:2015-09-17 16:49:34
【问题描述】:

我发现我可以通过以下方式做到这一点没问题,直到我到达我还需要可编辑并在更新时传回保存的地方。

这是一个用于添加当前项目的 json 数据的指令:(在 SO 上找到)-AngularJS: textarea bind to JSON object shows "object-object"

    app.directive('jsonText', function() {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function(scope, element, attr, ngModel) {
            function into(input) {
                return JSON.parse(input);
            }
            function out(data) {
                return JSON.stringify(data);
            }
            ngModel.$parsers.push(into);
            ngModel.$formatters.push(out);

        }
    };
});

这里是 html,这适用于预填充,但我需要 ngModel 也可以拉入,以便在编辑时保存该数据。

<textarea json-text ng-model="review" id="review" class="form-control" rows="3"  ng-bind="encounterNote"></textarea>

所以最后我需要一种方法来预填充一个(可能是来自 JSON API 的几行文本),允许对其进行编辑,然后在保存功能上我已经引用了“当前”值保存和更新。

【问题讨论】:

  • 为什么需要解析和序列化呢?如果 API 返回 JSON,您应该能够将返回的 JSON 视为字符串并将该字符串作为模型。然后,您可以再次将该模型作为字符串发布回 API。当您只需要一个 JSON 字符串时,您的问题似乎源于让您的模型成为正确的 JS 对象。
  • 如果只是文本,这一切都没有意义,看来您需要修改传递给ng-model的内容数据是什么样的?

标签: javascript json angularjs


【解决方案1】:

@devinallenaz 是正确的,只是在 textarea 中使用 ngModel 就像一个魅力。

现在我觉得自己很笨。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 2011-11-03
    相关资源
    最近更新 更多