【问题标题】:MEAN.JS New Controller Function and RouteMEAN.JS 新控制器函数和路由
【发布时间】:2015-10-04 20:16:18
【问题描述】:

我正在学习 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 项目,其中包含我可以查看的非默认路由/功能...

干杯, 阿德里安

【问题讨论】:

    标签: angularjs node.js express meanjs


    【解决方案1】:

    有些事情会跳出来,首先你应该确保你的路由在请求时被命中,你可以在你的读取功能中添加一个 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);
    

    在您的文章.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
    }
    }
    

    希望对您有所帮助,如果没有,请告诉我,我可以提出更多建议。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 2017-02-20
    • 2014-10-28
    • 2023-03-27
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多