我通过在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;
});
}]);