我在 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/