将数据添加到JSON文件

时间:2016-12-01 10:09:45

标签: angularjs json

使用表单,我想将数据添加到我的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"
    }
]

1 个答案:

答案 0 :(得分:2)

该文件在服务器上静态提供,这就是您可以调用$http.get('youtube.json')并访问它的原因。因此,服务器提供了一个URL来供您访问。要实际写入它,您仍然需要一个将处理请求的服务器,并写入该文件(如果其nodejs带有&f;&#39;模块)。除此之外,您无法从Web访问文件系统:)我希望这有助于澄清事情。