我是angularJs的新手,我正在使用ionic来构建应用程序。 我有一个服务,以下返回用户所做的所有笔记。下面:
// Promise-based API
return {
loadAllNotes: function () {
return deferredPromise.promise;
},
query: function (params) {
deferredPromise.promise.then(function(data){
//console.log(filterFilter(data.notes, params)); //CORRECT RESULT
return filterFilter(data.notes, params);
});
}
}
我使query(params)
函数能够过滤结果。通过params
。虽然当你在返回函数中我console.log()
时,如上所示,我得到了所需的结果。但我无法在我的控制器中访问该结果。
function loadNotes(){
vm.notes = [].concat(noteService.query({"lead_id":vm.lead.id})); //calling The service function
console.log(vm.notes); //logs [undefined]
}
我相信在处理承诺方面我缺少一些东西。 filterFilter工作正常我似乎无法在我的控制器中得到结果。有什么想法吗?
答案 0 :(得分:0)
首先,您应该在服务中返回承诺:
query: function (params) {
return deferredPromise.promise.then(function(data){
return filterFilter(data.notes, params);
});
}
之后
noteService.query({"lead_id":vm.lead.id}).then(function(r){
vm.notes.push(r);
console.log(vm.notes);
});