mean.ioで MEAN スタックを使用して、node/express/Angular を使い始めています。
Angular コントローラーが Express コントローラーを呼び出してデータをフェッチする方法がわかりません。
私が持っているのは public/js/controllers/index.js です:
angular.module('mean.system').controller('IndexController', ['$scope', 'Global', 'Tabs',
function ($scope, Global, Tabs) {
$scope.global = Global;
Tabs.query(function(tabs) {
$scope.tabs = tabs;
});
}]);
しかし、「タブ」とは正確には何なのか混乱しています。どういうわけか、魔法のように、最終的にこのメソッドが呼び出されることを知っています-これはExpressコントローラーだと思いますか?アプリ/コントローラー/tabs.js:
exports.all = function(req, res) {
Tab.find().sort('artist').select("-content").populate('user').exec(function(err, tabs) {
if (err) {
res.render('error', {
status: 500
});
} else {
res.jsonp(tabs);
}
});
};
しかし、私はそれがどのように呼び出されるかを理解していません。私がやりたいことは、代わりに app/controllers/tabs.js で別のメソッドを呼び出すことです-つまり、これ:
exports.newest = function(req, res) {
Tab.find().sort('-created').limit(10).select("-content").exec(function(err, tabs) {
...
しかし、AngularJS コントローラーと Express コントローラーを「接続」する方法がわかりません。
つまり、コントローラーで次のようなことを行うにはどうすればよいですか。
angular.module('mean.system').controller('IndexController', ['$scope', 'Global', 'Tabs',
function ($scope, Global, Tabs) {
$scope.global = Global;
Tabs.newest(function(tabs) { // this won't work
$scope.tabs = tabs;
});
}]);