我是angularJS的新手。我需要做的是将员工添加到名为" employees.json"的文件中。员工有3个功能,名称,城市和州,可以通过文本框输入。我目前的代码在下面,由于某种原因它无法正常工作。有人能帮助我吗?
$scope.addEmplyee=function(){
/ create new employee here with user inputs
// an Employee object has three properties: name, city, state
var name=$scope.name;
var city=$scope.city;
var state=$scope.state;
$http.get('employees.json').success(function (data){
$scope.employees = data});
$scope.employee={"name":name,"city":city,"state":state};
$http.post('/employees.json', {"employee": $scope.employee})
.success(function(response, status, headers, config){
$scope.employees.push($scope.employee);
});
};
HTML代码如下
<div>
<b>Add Employee :</b>
<div>Name:<input type="text" ng-model="name"/></div>
<div>City: <input type="text" ng-model="city"/></div>
<div>State: <input type="text" ng-model="state"/></div>
<button class="btn" ng-click="addEmplyee()">Add</button>
</div>
答案 0 :(得分:0)
您无法真正从浏览器写入文件。请参阅此问题:Writing a json object to a text file in javascript。但是,您可以将POST请求发送到将执行写入文件的服务器。
话虽如此,我在您的代码中看到了几个问题。您的name
,city
和state
变量未使用var
(Python背景?)声明,这使它们成为全局变量,尽管它们似乎是本地的。
您的$scope.employees
属性上存在争用条件:即,您似乎依赖于GET请求将在POST请求之前完成的事实,但没有理由这样做,因为这些调用是异步的。怎么会出错?例如,当执行POST请求的回调时,仍然可能无法定义$scope.employees
。