使用表单,我想将数据添加到我的JSON文件中。我怎样才能做到这一点 ?我是否需要重新创建JSON文件,还是可以将数据添加到现有的JSON文件中?
$ http.post不起作用,所以它使用不当或我需要更换它?
HTML文件
<body ng-app='app'>
<div ng-init="getData()" ng-controller="listController">
<ul ng-repeat="detail in details">
<li>
<a href="{{detail.url}}">{{detail.url}}</a>
</li>
<li>
{{detail.description}}
</li>
<li>
{{detail.author}}
</li>
</ul>
<form method=POST ng-submit="submit()">
<label for="lien">Lien :
<input type="url" id="lien" ng-model="detail.url" placeholder="http://"/>
</label>
{{detail.url}}
<br><br>
<label for="description">Description :
<textarea id="description" ng-model="detail.description"></textarea>
</label>
{{detail.description}}
<br><br>
<label for="auteur">Auteur :
<input type="text" id="auteur" ng-model="detail.author"></input>
</label>
{{detail.author}}
<p>{{detail}}</p>
<input type="submit" id="submit" value="Submit" />
<p>{{details}}</p>
</form>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script>
<script src="script.js"></script>
</body>
JS档案
var app = angular.module("app", []);
app.controller("listController", ["$scope","$http",
function($scope,$http) {
$scope.getData = function()
{
$http.get('youtube.json').then(function (response){
$scope.details = response.data;
});
};
$scope.submit = function()
{
$scope.details.push($scope.detail);
$http.post('youtube.json', $scope.details);
}
}]);
JSON文件
[
{
"url": "https://www.youtube.com/watch?v=E1NIJjTYq6U",
"author": "Grafikart.fr",
"description": "Salut tout le monde"
},
{
"url": "https://www.youtube.com/watch?v=fOuKMuaGJ54&list=PLjwdMgw5TTLUDlJyx4yIPQjoI-w-7Zs1r",
"author": "Grafikart.fr",
"description": "Les directives"
}
]
答案 0 :(得分:2)
该文件在服务器上静态提供,这就是您可以调用$http.get('youtube.json')
并访问它的原因。因此,服务器提供了一个URL来供您访问。要实际写入它,您仍然需要一个将处理请求的服务器,并写入该文件(如果其nodejs带有&f;&#39;模块)。除此之外,您无法从Web访问文件系统:)我希望这有助于澄清事情。