连接AngularJS控制器以表达控制器

时间:2013-10-28 21:49:08

标签: angularjs express mean-stack

我在mean.io处使用MEAN堆栈开始使用node / express / Angular。

我不明白Angular控制器如何调用快速控制器来获取数据。

我拥有的是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;
        });
}]);

但我很困惑究竟是什么'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控制器。

即。我该怎么做才能在控制器中做到这样的事情:

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

1 个答案:

答案 0 :(得分:0)

在MEAN中,Articles服务是一个角度服务,它返回您通常可以在public / js / services文件夹中找到的$ resource对象。

$ resource是angularjs附带的$ http AJAX服务的包装器,如果您的REST服务是以特定方式构建的,它可以让您与RESTful端点连接。

与node.js控制器的连接使用在config文件夹中找到的routes.js对象进行,该对象将路由绑定到特定的模块方法。

进一步阅读:

http://docs.angularjs.org/api/ngResource.$resource

http://expressjs.com/api.html#app.VERB