【发布时间】:2014-03-05 23:24:03
【问题描述】:
我不清楚为什么这不起作用。我的其余代码 - 没有基于 URL 参数的路由工作正常,我已经测试过了。但是,当我尝试在我的 url (base.url/route/:param) 中包含一个 URL 参数时,我的 routeProvider 的 '.otherwise' 元素正在触发,而不是在 routeProvider 中指定的适当控制器。
以下是相关的代码:
模块配置
app.config(function($routeProvider){
//http://docs.angularjs.org/tutorial/step_07
$routeProvider
.when('/home',
{
templateUrl: 'app/partials/home.html',
controller: 'HomeController'
})
.when('/implementation-reference/:ref-scope',
{
templateUrl: 'app/partials/topic_tpl.html',
controller: 'ImplReference'
})
.when('/projects',
{
templateUrl: 'app/partials/project_list_tpl.html',
controller: 'Projects'
})
.when ('/site-help',
{
templateUrl: 'app/partials/site-help.html'
})
.otherwise(
{
templateUrl: 'app/partials/404.html'
})
});
模块.控制器
app.controller('ImplReference', function($scope, $routeParams) {
alert('hi');
});
转到 /implementation-reference/whatever 时,我得到了 404 页面。
任何想法为什么我没有看到我在控制器开头放置的警报,也没有在控制台中看到任何错误?
【问题讨论】:
-
我认为网址应该是
#/implementation-reference/whatever -
getAllTooicPosts在哪里? -
@Chandermani,为什么我需要添加该哈希?浏览器中有实际的 URL,但是我在 routeProvider 中的所有其他路由在上面运行良好,它们不需要添加该哈希。
-
我想我应该清理一下。只需考虑控制器和警报。我已经尝试过相同的方法,删除了工厂依赖项(formsImplReference),但我仍然无法让控制器触发并向我显示该警报。它仍然从 RouteProvider 路由到 .otherwise。
-
你是如何从 js 或 html 导航到这个 url 的?