如何使用angularJs

时间:2015-07-28 12:59:26

标签: javascript angularjs service filter ionic

我是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工作正常我似乎无法在我的控制器中得到结果。有什么想法吗?

1 个答案:

答案 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);
});