angularjs - MEAN.JS 新 Controller 功能和路线

标签 angularjs node.js express meanjs

我正在学习 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/

相关文章:

javascript - AngularJS 如何动态添加组件?

javascript - 设计 MongoDB 数据库 - 许多嵌入式文档可以吗?

node.js - 来自 Lambda Node JS 的多个 Dynamo DB 调用

javascript - Chrome DedicatedTools 停止为 Node.js 工作

node.js - 如何在Node.js(ExpressJS)中获取请求来源

mysql - NodeJs MySQL 使用哈希密码登录

javascript - 重用具有不同参数的 Angular View 和 Controller

javascript - 部分 View 中的 data-ng-repeat 不显示数据

angularjs - 我可以在不使用 Node.js 的情况下使用 Ionic 来构建托管 Web 应用程序吗?

javascript - Node.js 如何知道回调的第一个参数是否是错误处理程序?