除了有角度之外,是否可以将数据写入本地json文件?

Alo*_*eld 23 html javascript json angularjs

我试图在仅使用angular的html formly-form上点击"Submit"之后将数据写入json文件,但什么也没发生.我知道我可以使用angular读取json文件但不确定创建文件.控制器中的onSubmit():

function onSubmit() {
    $scope.save = function() {
        $http.post('./temp/sample_data.json', JSON.stringify($scope.model)).then(function(data) {
            $scope.msg = 'Data saved';
        });
    };
};
Run Code Online (Sandbox Code Playgroud)

HTML:

<form name="form" ng-submit="onSubmit()" novalidate>
    <formly-form model="model" fields="fields"></formly-form><br/>
    <button type="submit">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

未创建sample_data.json,如果我创建一个空文件,它也不会填充数据.$ scope.model defenitly包含数据.如果有人可以提供帮助,我们将非常感激.谢谢,Alon.

T.J*_*der 24

除了有角度之外,是否可以将数据写入本地json文件?

不会.即使您从本地文件系统(例如file://myfile.html)或本地Web服务器(例如,http://localhost/myfile.htmlhttp://host-on-my-intranet/myfile.html)运行页面,您仍然无法直接从浏览器托管的JavaScript代码写入文件.

两种选择:

  1. 将其发送到可以写出来的东西(例如,服务器),或者

  2. 将其作为data:URI(如果可行,在您的情况下)提供,用户可以右键单击并选择"另存为..."

    以下是data:为某些JSON文本创建URI的方法:

    var uri = "data:application/json;charset=UTF-8," + encodeURIComponent(theJSON);
    
    Run Code Online (Sandbox Code Playgroud)

#2的完整示例:

var theData = {
  foo: "bar"
};
var theJSON = JSON.stringify(theData);
var uri = "data:application/json;charset=UTF-8," + encodeURIComponent(theJSON);

var a = document.createElement('a');
a.href = uri;
a.innerHTML = "Right-click and choose 'save as...'";
document.body.appendChild(a);
Run Code Online (Sandbox Code Playgroud)


Que*_*tin 5

没有.

Angular运行客户端.

如果要将数据写入服务器(甚至与浏览器在同一台计算机上),则需要服务器端代码才能执行此操作.


Ale*_*lan 5

您无法从 Javascript 访问本地文件系统(直接)。这是出于安全原因强制执行的(当您考虑时,这是有道理的!)。

使用javascript访问本地文件