データベースにクエリを実行し、カテゴリを返す角度サービスを作成しました。
(function() {
'use strict';
angular.module('budget')
.service('CategoriesService', ['$q', CategoriesService]);
function CategoriesService($q) {
var self = this;
self.loadCategories = loadCategories;
self.saveCategorie = saveCategorie;
self.datastore = require('nedb');
self.db = new self.datastore({ filename: 'datastore/default.db', autoload : true});
function saveCategorie (categorie_name) {
var entry = {name: categorie_name,
type: 'categorie'}
self.db.insert(entry);
};
function loadCategories () {
self.db.find({type: 'categorie'}, function (err, docs) {
var categories = docs;
return categories;
});
};
return {
loadCategories: self.loadCategories,
saveCategorie: self.saveCategorie
};
}
})();
内部でconsole.logを実行するfunction loadCategories()
と、6つのオブジェクト(データベースからのオブジェクト)の配列が返されますが、関数の外ではundefined
.
私はコントローラ経由で呼び出していますCategoriesService.loadCategories()
だから私は何かをしなければならないかもしれないと思うが、promise
それについてはよくわからない。
このサービスから実際のデータを取得するにはどうすればよいですか?