Angularjs post 发送数据时检索数据问题
Angularjs retrieving data issue while sending data by post
我将从 url 获得的 ID 发送到服务器(php 页面)。
我从url获取并通过angularjs中的post
方法发送的方式:
(注意: 我检索数据并在 console.log() 中打印正常,问题是我想将它们放入 $范围)
.controller('PlaylistCtrl', function($scope, $stateParams, $http) {
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
$http({
method: 'POST',
url: 'http://cms.focusweb.ir/Json/get_article',
data: { id: $stateParams.playlistId },
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(response) {
// This works right
console.log(response);
// PROBLEM IS HERE
angular.forEach(response, function(response){
$scope.articles_content.push(response);
});
})
.error(function(data, status, headers, config) {
// handle error things
});
});
我的PHP代码是:
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$article_ID = $request->id;
我得到的错误是:
错误基本上是说 articles_content
不存在 (undefined
)。因此 'push' of undefined
您需要先定义数组,然后再尝试使用它。
$scope.articles_content = []
所以应该是:
.controller('PlaylistCtrl', function($scope, $stateParams, $http) {
$scope.articles_content = []; // Add this in here
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
$http({
method: 'POST',
url: 'http://cms.focusweb.ir/Json/get_article',
data: { id: $stateParams.playlistId },
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(response) {
// This works right
console.log(response);
angular.forEach(response, function(response){
// because you now defined articles_content
// as an array, the push() will now work :)
$scope.articles_content.push(response);
});
})
.error(function(data, status, headers, config) {
// handle error things
});
});
$scope
已经被定义,这就是为什么你可以动态地向它添加任何东西。任何比这更深的东西,你需要先定义你的结构。
我将从 url 获得的 ID 发送到服务器(php 页面)。
我从url获取并通过angularjs中的post
方法发送的方式:
(注意: 我检索数据并在 console.log() 中打印正常,问题是我想将它们放入 $范围)
.controller('PlaylistCtrl', function($scope, $stateParams, $http) {
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
$http({
method: 'POST',
url: 'http://cms.focusweb.ir/Json/get_article',
data: { id: $stateParams.playlistId },
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(response) {
// This works right
console.log(response);
// PROBLEM IS HERE
angular.forEach(response, function(response){
$scope.articles_content.push(response);
});
})
.error(function(data, status, headers, config) {
// handle error things
});
});
我的PHP代码是:
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$article_ID = $request->id;
我得到的错误是:
错误基本上是说 articles_content
不存在 (undefined
)。因此 'push' of undefined
您需要先定义数组,然后再尝试使用它。
$scope.articles_content = []
所以应该是:
.controller('PlaylistCtrl', function($scope, $stateParams, $http) {
$scope.articles_content = []; // Add this in here
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
$http({
method: 'POST',
url: 'http://cms.focusweb.ir/Json/get_article',
data: { id: $stateParams.playlistId },
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(response) {
// This works right
console.log(response);
angular.forEach(response, function(response){
// because you now defined articles_content
// as an array, the push() will now work :)
$scope.articles_content.push(response);
});
})
.error(function(data, status, headers, config) {
// handle error things
});
});
$scope
已经被定义,这就是为什么你可以动态地向它添加任何东西。任何比这更深的东西,你需要先定义你的结构。