我正在学习AngularJs。 我发现自己很喜欢它,但我坚持使用这个代码
我的控制器
$scope.getQuestionaires = function(){
var formdata = $scope.formdata;
var items = parseInt(formdata.items);
var num_letter = parseInt(formdata.num_letter);
var num_missing_letter = parseInt(formdata.num_missing_letter);
var send_data = {
api_type: 'select',
tb_name: 'tb_spelling',
tb_fields: false,
tb_where: false,
tb_others: "LIMIT "+items
};
return factory.getRecords(send_data);
}
我的工厂
factory.getRecords = function(data) {
return $http.post('models/model.php', {
params: data
}).then(function(response) {
records = response.data;
return records;
});
};
情况:当我console.log($scope.getQuestionaires)
时,它会返回
function(b,j){var G = E()中,i =函数(d){尝试{g.resolve((B || C)(d))}赶上(E){A(e)中,g.reject(E)}},邻=函数(b){尝试{g.resolve((j || d)(B))}捕获(C){A(C),g.reject(C)}};˚Ff.push([I,O):h.then(I,O);返回? g.promise} controllers.js:307 function(a){function b(a,c){var d = e(); c?d.resolve(a):d.reject(a); return d.promise} function d(e,f){var j = null;尝试{j =(a || c)()} catch(g){return b(g,!1)} return j&& j.then?j.then(function(){return b(e,f)},function(a){return b(a,!1)}):b(e,f)}返回this.then(function(a){return d(a,!0)},function(a){return d(a,!1)})} controllers.js:307
[对象,对象,对象,对象]
问题:我的问题是我只想要对象数组,我该怎么做?我认为我的代码有很多改进......我需要帮助:))
THX
==================================== 固定
感谢Chandermani的回答,
知道了!
我的控制器
$scope.createTest = function(){
$scope.getQuestionaires();
}
/*question getter*/
$scope.getQuestionaires = function(id,question){
/*send_data here*/
var records = factory.getRecords(send_data);
records.then(function(response){
$scope.questionaires = response.data;
});
}
我的工厂
factory.getRecords = function(data) {
return $http.post('models/model.php', {
params: data
});
};
答案 0 :(得分:0)
方法getQuestionaires返回$ http post方法的响应,这是一个promise而不是实际数据,因为调用是异步的。
将方法getRecords
更改为
factory.getRecords = function(data) {
return $http.post('models/model.php', {
params: data
});
};
当您调用方法getQuestionaires
时,请执行类似
$scope.getQuestionaires().then(function(response){
//access response.data here
});
尝试了解此类请求的异步性质。如果您在自己的函数中调用异步方法,则可以通过返回promise或提供回调作为函数的参数来访问响应。