我正在学习 MEAN.JS,并且在路由方面遇到了一些问题,只是想向名为 getSubArticles 的文章项目添加一个新函数,该函数调用服务器并执行某些操作。
//articles.server.routes.js
app.route('/articles/:articleId/subarticles')
.get(articles.read);
//articles.server.controller.js
exports.read = function(req, res) {
res.jsonp("My Sub articles");//just using for testing
};
//articles.client.controller.js
$scope.getSubArticles = function() {
// What goes here as everything I've tried has failed, but the route could be constructed incorrectly
};
//articles.client.view.html
<section id="subarticle-listing" data-ng-controller="ArticlesController" data-ng-init="getSubArticles()">
有什么想法我哪里出错了吗?获得了一个带有非默认路由/函数的示例 MEAN.JS 项目,我可以查看...
干杯, 阿德里安
最佳答案
有一些事情会跳出来,首先你应该确保你的路线在请求时被命中,你可以在你的读取函数中添加一个console.log。在您的 app.js(或 server.js,无论哪个文件用于启动您的应用程序)中,您需要:
//server.js file:
var router = express.Router();
var routes = require('./articles.server.routes.js'); //path to your routes file
router.use('/',routes);
在你的articles.server.routes.js文件中,在顶部包含这些要求,并且你的路由不能有变量,然后有固定名称,基本上变量后面的任何内容都会被砍掉,所以新路由应该是:
// articles.server.routes.js
var express = require('express'),
app = express().Router();
app.route('/articles/subarticles/:articleId')
.get(articles.read);
在您的articles.server.controller.js中:
exports.read = function(req, res) {
var articleid = req.params.bid
console.log('read function called' + articleid)
res.jsonp("My Sub articles");//just using for testing
};
现在在你的 Angular Controller 中:
$scope.getSubArticles = function() {
$http.get('/articles/subarticles/' + $scope.articleId)
.success(function(data){
//do something with your return data
}
.error(function(err){
//error handler
}
}
希望有帮助,如果没有,请告诉我,我可以提出更多建议。
关于angularjs - MEAN.JS 新 Controller 功能和路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31436347/