0

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;
        });
}]);
4

1 に答える 1