【问题标题】:Express routing conflicting with AngularJS routing.Express 路由与 AngularJS 路由冲突。
【发布时间】:2013-11-25 09:47:23
【问题描述】:

我在 Express 中有以下性质的路由代码:

app.get("/profile/:param", function (req, res) 

这与 AngularJS 提供的路径路由相吻合。例如,当加载一个性质为/profile/someparam#view1 的Angular 视图时,新的URL 模式被Express 拾取,它假定它是/profile/<someparam> 类型。这导致与 view1 关联的控制器被无限调用,从而导致页面崩溃。

如何解决这个问题?

【问题讨论】:

    标签: javascript node.js angularjs express url-routing


    【解决方案1】:

    我可以从这里找到解决方案:AngularJS and ExpressJS routing conflicts。基本上,在角度路由文件中,templateURL 需要在前面加上一个“/”。例如,在我的角度路由代码中,我必须更改

    $routeProvider.when('/routeName', {
            templateUrl: 'view1.html', 
            controller:'rcontroller' 
    });
    

    $routeProvider.when('/routeName', {
            templateUrl: '/view1.html', 
            controller:'rcontroller' 
    });
    

    【讨论】:

    • 通常的做法是将模板放入名为“partials”的文件夹中,这样与任何后端 API 发生冲突的可能性很小。看看angular-seed 项目
    • @MichaelTang,是的,一般来说,我确实将我的观点放在了部分目录中。但是即使我的视图在部分目录中,我的问题也不会得到解决。
    猜你喜欢
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 2016-05-26
    • 1970-01-01
    相关资源
    最近更新 更多