代码之家  ›  专栏  ›  技术社区  ›  rishi007bansod

从JavaScript文件读取数据后更新视图

  •  0
  • rishi007bansod  · 技术社区  · 6 年前

    https://jsfiddle.net/rishi007bansod/f7903drg/160/ . 在这个java脚本中,我从 json 包含 json文件 进入。例如,文件包含以下条目:

    {
        "a":5,
        "b":2,
        "f": 
        {
            "c":"test",
            "d":"test_json"
        }
    }
    

    json文件 条目树结构与分配 Add Node Delete Node 按钮,允许添加或删除节点。

    在代码中,我已经初始化了 $scope.tree $scope.tree = [{name: "myTree", nodes: []}]; . 然后,我尝试将树结构分配给 $scope.tree文件 $scope.tree文件 html

    2 回复  |  直到 4 年前
        1
  •  1
  •   Pop-A-Stash    6 年前

    问题是,读取文件数据的函数是异步的,但它不会通知AngularJS它已经完成。

    document.getElementById('files').addEventListener('change', handleFileSelect, false);
    

    只有角度提供者与AngularJS摘要周期“同步”( $q , $http $timeout 等)。但是,普通的旧文档事件不是,必须采取额外的步骤来向AngularJS指示它需要运行另一个循环。

     $scope.$apply(function() {
       $scope.tree = myTree;
     });
    

    工作示例: https://jsfiddle.net/f7903drg/161/

        2
  •  2
  •   Eduardo Yáñez Parareda    6 年前

    嗯,你正在更新 $scope.tree $scope.apply 在里面 handleFileSelect 函数,就在末尾或赋值之后。

    类型的输入字段的问题 file 要添加onChange,您需要编写一个自定义指令,因为这些字段不支持ng更改。