[英]MEAN.JS New Controller Function and Route
我正在學習MEAN.JS,並且在路由方面遇到了一些問題,只是想向article項目添加一個名為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控制器中:
$scope.getSubArticles = function() {
$http.get('/articles/subarticles/' + $scope.articleId)
.success(function(data){
//do something with your return data
}
.error(function(err){
//error handler
}
}
希望能有所幫助,如果沒有,請告訴我,我可以提出更多建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.