I'm trying to write data to a json file after hitting "Submit" on an html formly-form using only angular, but nothing is happening. I know I can read a json file using angular but not sure on creating files. onSubmit() in controller:
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>   The sample_data.json isn't created and if I create an empty file it does not fill up with the data as well. The $scope.model defenitly contains data. If anyone can help, it will be very appreciated. Thanks, Alon.
JSON is used by Angular in a variety of contexts, including configuration. For example, the project generated by Angular CLI comprises many files with the . json extension, most notably the package. json and angular.
Chrome allows you to access local JSON or other data files if you launch it with the --allow-file-access-from-files flag. I checked this with the code above on version 34.0. 1847.131 m; it should work on other versions as well.
Is it possible to write data to a locally json file with nothing but angular?
No. Even if you're running the page from the local file system (e.g., file://myfile.html) or from a local webserver (e.g., http://localhost/myfile.html or http://host-on-my-intranet/myfile.html), you still have no means of directly writing to a file from browser-hosted JavaScript code.
Two choices:
Send it to something (e.g., a server) that can write it out, or
Provide it as a data: URI (if feasible in your case) that the user can right-click and choose "save as..."
Here's how you create a data: URI for some JSON text:
var uri = "data:application/json;charset=UTF-8," + encodeURIComponent(theJSON);  Full Example of #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);  If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With