所以我在设置角度路线时遇到了问题。
直截了当地说,我的角度路线定义不会击中我的mvc控制器,从而击中动作方法。
action方法返回部分视图,代表我的模板。
以下是我的路线配置图片。
这是我的控制器操作的图像。
我确信我错过了一些东西,但似乎无法弄清楚是什么。
答案 0 :(得分:0)
此示例可帮助您更好地了解$ routeProvider和$ locationProvider。
我看到的唯一问题是相关链接和模板因此没有正确加载。
from the docs regarding HTML5 mode
请务必检查所有相关链接,图像,脚本等。您必须在主html文件()的头部指定url base,或者必须使用绝对URL(以/开头),因为相对URL将是使用文档的初始绝对URL解析为绝对URL,这通常与应用程序的根不同。 在您的情况下,您可以在配置路由时添加正斜杠/ in href属性($ location.path自动执行此操作)以及templateUrl。这样可以避免像example.com/tags/another这样的路由,并确保模板正确加载。
这是一个有效的例子:
<div>
<a href="/">Home</a> |
<a href="/another">another</a> |
<a href="/tags/1">tags/1</a>
</div>
<div ng-view></div>
和
app.config(function($locationProvider, $routeProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when('/', {
templateUrl: '/partials/template1.html',
controller: 'ctrl1'
})
.when('/tags/:tagId', {
templateUrl: '/partials/template2.html',
controller: 'ctrl2'
})
.when('/another', {
templateUrl: '/partials/template1.html',
controller: 'ctrl1'
})
.otherwise({ redirectTo: '/' });
});
如果使用Chrome,则需要从服务器运行。
答案 1 :(得分:0)
对我有用的是删除$ locationProvider.html5Mode的设置。正如在另一个堆栈溢出帖子中提到的那样,这里使用MVC中的locationProvider的MVC5 and Angular.js routing - URLs not matching似乎搞砸了路由。我仍在调查为什么会发生这种情况,因为我认为它只是删除了网址中的“#”,但似乎还有更多内容