我在一个表单中选择了两个字段(月份和来源
),并将其提交给一个使用Ionic框架打包的1.3.13版本的AngularJS
控制器。
在then
方法中,通过console.log
观察到值已正确填充。
返回的q.promise
的值为:[object, object]
。
HTML
模板列表未用正确的预期值填充。
这些值没有填充PHP API
中的POST
变量。
如何填充POST
数据?
在我的模板中,我将其提交给search
方法:
<form method="post" ng-controller="AcpSearchCtrl" ng-submit="search(data)">
<select name="month" ng-model="data.month">
<option value="01">January</option>
在我的控制器中,我使用了http.post
和一个promise
:
.controller('AcpSearchCtrl', function($scope, ApiAcpSearch, $ionicLoading, $timeout, $http, ApiAcpEndpoint, $q) {
$scope.search = function(data) {
$ionicLoading.show({
noBackdrop: false,
template: '<p>searching ...</p>'
});
var q = $q.defer();
$scope.formData = {};
$scope.submission = false;
var param = function(data) {
var returnString = '';
for (d in data){
if (data.hasOwnProperty(d))
returnString += d + '=' + data[d] + '&';
}
return returnString.slice( 0, returnString.length - 1 );
};
console.log('formData : '+$scope.formData);
return $http({
url:ApiAcpEndpoint.url,
data : param($scope.formData),
method : 'POST',
headers : {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}
})
.then(function(data) {
q.resolve(data);
var acp = {};
acp.qdata = [ data ];
$scope.data = acp.qdata;
$ionicLoading.hide();
return q.promise;
});
}
})
console log
中,我看到从Web服务过滤出来的正确数据按月份和来源进行过滤,但模板没有更新以显示此数据,而是显示未经过滤的数据。我在console.log
中有$scope.data
的真实数据,如何强制更新或返回正确的数据? - Ângelo Rigo$http({ /* code */ }).success(function(data) { /* More stuff */ });
。您明白我的意思吗? - Ricardo Velhote