我试图仅使用angular命中html形式表单上的“提交”,然后将数据写入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'; }); }; };
的HTML:
<form name="form" ng-submit="onSubmit()" novalidate> <formly-form model="model" fields="fields"></formly-form><br/> <button type="submit">Submit</button> </form>
不会创建sample_data.json,如果我创建一个空文件,它也不会填充数据。$ scope.model绝对包含数据。如果有人可以提供帮助,将不胜感激。谢谢,阿隆。
是否可以仅将数据写入本地json文件中?
不会。即使您是从本地文件系统(例如file://myfile.html)或本地Web服务器(例如http://localhost/myfile.html或http://host- on-my-intranet/myfile.html)运行页面,您仍然无法直接从浏览器托管的JavaScript代码写入文件。
file://myfile.html
http://localhost/myfile.html
http://host- on-my-intranet/myfile.html
两种选择:
将其发送到可以将其写出的内容(例如服务器),或者
提供它作为data:URI(如果可以的话),用户可以右键单击并选择“另存为…”。
data:
这是data:为一些JSON文本创建URI的方法:
var uri = "data:application/json;charset=UTF-8," + encodeURIComponent(theJSON);
*#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);