Angularjs 使用URL参数时未触发控制器
我不清楚为什么这不起作用。我的其余代码(无URL参数的路由)运行良好,我已经测试了所有这些。但是,当我尝试在我的URL(base.URL/route/:param)中包含URL参数时,我的routeProvider的“.Others”元素正在激发,而不是routeProvider中指定的相应控制器 以下是相关的代码位: module.configAngularjs 使用URL参数时未触发控制器,angularjs,routes,Angularjs,Routes,我不清楚为什么这不起作用。我的其余代码(无URL参数的路由)运行良好,我已经测试了所有这些。但是,当我尝试在我的URL(base.URL/route/:param)中包含URL参数时,我的routeProvider的“.Others”元素正在激发,而不是routeProvider中指定的相应控制器 以下是相关的代码位: module.config app.config(function($routeProvider){ //http://docs.angularjs.org/tutorial/s
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/什么的时候,我得到了404页面
你知道为什么我看不到控制器开头的警报,也看不到控制台中的任何错误吗?据我所知,问题在于使用RouteProvider中定义的参数中的破折号。我最初有:
.when('/implementation-reference/:ref-scope',
{
templateUrl: 'app/partials/topic_tpl.html',
controller: 'ImplReference'
})
当我把它改成这个:
.when('/implementation-reference/:ref',
{
templateUrl: 'app/partials/topic_tpl.html',
controller: 'ImplReference'
})
…突然间一切正常
在向显示$route信息的“否则”添加控制器后,我注意到了这一点。钻过它之后,我看到预定义路径上的正则表达式(带有param)只在破折号之前的部分上工作
几个小时以来,我一直对这一点感到困惑,无法想象为什么在某个地方没有更清楚地记录这一点。也许这是一个新手的错误(我是新手)。我认为url应该是
#/implementation reference/which
哪里是getAllTooicPosts
?@Chandermani,为什么我需要添加那个散列?在浏览器中有实际的URL,但是我在routeProvider中的所有其他路由在上面运行良好,它们不需要添加哈希。我想我应该清理一下。只需考虑控制器和警报。我也尝试过同样的方法,删除了工厂依赖项(FormSimpleReference),但仍然无法让控制器启动并显示该警报。它仍然路由到。否则从RouteProvider。您如何从js或html导航到此url?