javascript - 限制给定 NodeJS 路由的某些 AngularJS 路由

标签 javascript angularjs node.js express

我在 NodeJS 后端服务器 app.js 文件中添加了两条路由,如下所示:

// Add the routes
app.get('/provision', ...);
app.get('/', ...);

这些路由中的任何一个都可以完全访问 AngularJS 中定义的所有路由:

function routes($routeProvider){
    $routeProvider
        .when('/list',
        {
            templateUrl: 'sections/list/list.tpl.html',
            controller: 'listController',
            controllerAs: 'listCtrl'
        })
        .when('/overview',
        {
            templateUrl: 'sections/overview/overview.tpl.html',
            controller: 'overviewController',
            controllerAs: 'overviewCtrl'
        })
...

举个例子:我想控制 NodeJS 中的“/provision”路由只能访问 AngularJS 中的“/list”路由,而 NodeJS 中的“/”路由只能访问“/overview” “AngularJS 中的路由。

目前在我的代码中,我可以使用 NodeJS 中定义的“/provision”或“/”路由从浏览器访问所有 AngularJS 路由。我只想访问“/provision”的某些 angularJS 路由,其余的“/”路由。我怎样才能控制它?

最佳答案

如果您使用 Angular 路由,除了 api 调用之外,您可能不需要使用除 Node 中的 * 路由之外的任何内容。但是,您可以使用 stateChangeStart 生命周期方法来确定是否应允许用户使用 Angular 路线。有关如何执行此操作的一些说明可在此处找到 UI- Router -- run function on every route change -- where does the state name live?

因此重申一下,您不会同时使用 Node 和 Angular 来处理路由。您将有一个 * 路由,它将允许 ui 路由器处理所有路由。您可以使用 stateChangeStart 来确定是否允许用户前往他们想要前往的地方,如果不允许,您可以重定向他们。

关于javascript - 限制给定 NodeJS 路由的某些 AngularJS 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38296052/

相关文章:

javascript - 将 HTML 元素放入 SVG 结构中

c# - 使用 javascript 更改旧日期的文本颜色

html - 如何在angular js中以html显示xml文本

javascript - 无限滚动导致快速滚动时跳转到屏幕顶部

javascript - Node.js - Socket.io 一遍又一遍地重复 'io.on(' 连接')

Node.js 和 RegEx - 匹配字符串中的 "assignments"

javascript - TemplateSyntaxError 无法解析其余部分

javascript - php完成后如何关闭窗口?

javascript - IE 窗口失去对使用任何 XMLHttpRequest 启动 Angular 应用程序的关注

javascript - Node ,SSH2服务器等待输入