【发布时间】: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