2014-11-03 44 views
0

我是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

您是否創建了後端服務器來處理/employee.json http請求? – 2014-11-03 05:30:14

+0

您需要在服務器上實際處理POST請求(例如,通過編寫文件) – 2014-11-03 05:37:39

回答

0

你真的不能寫入從瀏覽器中的文件。看到這個問題:Writing a json object to a text file in javascript。但是,您可以將POST請求發送給將執行寫入文件的服務器。

這就是說,我看到你的代碼中的幾個問題。您的namecitystate變量未用var(Python背景?)聲明,這使得它們成爲全局變量,儘管它們似乎是本地變量。

您的$scope.employees屬性上存在爭用條件:即,您似乎依賴於GET請求在POST請求之前完成的事實,但沒有理由這樣做,因爲這些調用是異步的。它怎麼會出錯?例如,執行POST請求的回調時,$scope.employees可能仍未定義。