2014-11-04 146 views
0

我是相對較新的angularjs。我試圖用這個JSON來工作,似乎無法找到我的post命令的問題。 get可以正常工作,但是其他任何東西都會拋出404 url​​錯誤,儘管我檢查了所有匹配項。Angularjs與JSON,GET工作,但POST不

這裏是我的app.js代碼調用get命令的作品

angular 
.module('app', [ 
    'ui.router' 
    ]) 
.config(['$urlRouterProvider', '$stateProvider', function($urlRouterProvider, $stateProvider){ 
    $urlRouterProvider.otherwise('/'); 

    $stateProvider 
     .state('home', { 
      url: '/', 
      templateUrl: 'templates/home.html', 
      controller: 'homeCtrl', 
      resolve: { 
       friends: ['$http', function($http){ 
        return $http.get('./api/friends.json').then(function(response){ 
         return response.data; 
        }) 
       }] 
      } 
     }) 
     .state('about', { 
      url: '/about', 
      templateUrl: 'templates/about.html', 
      controller: 'aboutCtrl' 
     }) 
     .state('contact', { 
      url: '/contact', 
      templateUrl: 'templates/contact.html' 
     }) 
}]) 

這裏是一個加載的東西的主頁,在這裏我想編輯的家的內容homeCtrl.js文件頁面並回發到JSON文件。

在這裏我打電話的帖子,它給了我一個404錯誤。

angular 
.module('app') 
.controller('homeCtrl', ['$scope', 'friends', '$http', function($scope, friends, $http){ 
     $scope.title = "Home"; 
     $scope.friends = friends; 
     $scope.items =['item1', 'item2','item3']; 
     $scope.selectedValue = 'item1'; 

     $scope.save = function() { 
      $http.post('./api/friends.json', friends); 
     }; 
}]); 

這是home.html的

<h1>{{title}}</h1> 
<ul> 
    <li ng-repeat = "friend in friends"> 
     <input type="text" ng-model="friend.name"> 
     <input type="text" ng-model="friend.age"> 
    </li> 
</ul> 
<button ng-click="save()" class="btn btn-primary">Save</button> 

這是friends.json

[ 
    {"name": "Will", "age": 30}, 
    {"name": "Laura", "age": 25} 
] 
+1

聽起來像您的文章正在工作。如果服務器端代碼返回404,可能是有問題的。如果您的服務器設置爲處理該端點的帖子?另外,你可能想在這個'$ http.post('./ api/friends.json',friends)中使用'$ scope.friends';' – TheSharpieOne 2014-11-04 18:30:10

+0

你說你試圖把你的修改發回。 json文件。您需要有一個服務來更新您的.json文件。當然,將這些數據保存在數據庫中會更好。 – 2014-11-04 18:41:03

回答

1

你說「我想要編輯的主頁和文章的內容的代碼回到JSON文件。「

你不能以角度保存到本地文件。 「獲取」請求正在工作,因爲瀏覽器可以加載靜態文件(與css或html相同)。

你肯定只是通過點擊html而不是在任何http服務器上運行應用程序。如果您在文件夾中運行服務器(例如nodejs http-server)並將瀏覽器連接到它。它不會提供404(但當然它不會更新json文件)

如果你需要保存數據,你需要真正的工作應用程序,它將提供API和處理請求和存儲數據。

相關問題