【问题标题】:How to edit and validate JSON data using angularjs?如何使用 angularjs 编辑和验证 JSON 数据?
【发布时间】:2016-10-21 04:49:51
【问题描述】:

我成功地从dropdown 中的textarea 中获取并显示所选文件的json 数据。现在我的要求是我想使用angularjs(ng-jsoneditor) 或任何other libraries/tools 来编辑textarea 中所选文件的json 数据以进行验证。我已经尝试了以下方法,但我无法使其正常工作或与此或任何其他libraries 集成,以按预期编辑内容:默认为object {0} (empty object) 或单击change options 按钮。

我关注this

我在Plnkr中创建了上面的代码。

【问题讨论】:

  • 您尝试使用自己的文本区域而不是使用编辑器内置的文本区域是否有原因?您链接的 JSFiddle 上有一些按钮,可让您即时编辑数据或选项。
  • @VishalKotcherlakota,感谢您的回复,我的意思是我没有任何理由特别使用 textarea,我可以使用任何,但目的是我需要为所选文件显示我的 json 内容然后它应该是可编辑的以添加一些额外的 json 字段(它可以像 jsfiddle 的 json 编辑器一样进行验证)。请告诉我!

标签: javascript jquery angularjs json


【解决方案1】:

你需要直接向作用域声明“obj”对象

app.controller('MainCtrl', function($scope,$http) {

    $scope.JSONFiles = [];
    $scope.obj = {data: '', options: { mode: 'tree' }}; 

    $http.get("test1.json").success(function (response) {
      $scope.JSONFiles.push(response);
    });
    $http.get("test2.json").success(function (response) {
       $scope.JSONFiles.push(response);
    });

    $scope.selectedjson ="";
    $scope.textAreaData = "";
    $scope.optionChanged = function(){
      $scope.textAreaData = $scope.selectedjson;
     // alert($scope.textAreaData);//gives selected file json data
      // code to implement json-editor

       $scope.obj = {data: $scope.textAreaData, options: {mode: 'tree'}};
            $scope.onLoad = function (instance) {
                instance.expandAll();
            };
            $scope.changeOptions = function () {
                $scope.obj.options.mode = $scope.obj.options.mode == 'tree' ? 'code' : 'tree';
            };
    };

});

Here's 工作中的 Plnkr。
文档中的示例还显示了this

【讨论】:

  • 感谢您的回复!是的,我忘记了,你的 Plnkr 也可以正常工作!非常感谢您的帮助!
  • 我有一个小问题,如果我们观察清楚,一些斜线(“/”)会出现在选定的 json 数据中吗?如何删除
    内容中的那些?我可以知道为什么会出现这些吗?
  • json 正在被字符串化,意思是:json 包含 " 并将它们变成一个字符串,调用 JSON.stringify() 来添加 / 在前面 o。如果你想删除它们,你可以使用 JSON.parse()
  • 是的,我得到它并且工作正常!感谢您的宝贵支持!
  • 没问题!祝你有美好的一天
猜你喜欢
相关资源
最近更新 更多
热门标签