簡體   English   中英

MEAN.JS新的控制器功能和路由

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM