angularJS中的routeProvider行为不正确
在我的视图中,我正在输出链接。当我点击一个链接时,它会触发routeProvider中的otherwise方法,并最终重定向回主页。我需要它重定向indiv id,并且我需要能够在控制器内从我的视图中获取project.id。我可以帮忙吗。我有点困了 我的看法是:angularJS中的routeProvider行为不正确,angularjs,Angularjs,在我的视图中,我正在输出链接。当我点击一个链接时,它会触发routeProvider中的otherwise方法,并最终重定向回主页。我需要它重定向indiv id,并且我需要能够在控制器内从我的视图中获取project.id。我可以帮忙吗。我有点困了 我的看法是: <div class="container clearfix"> <div class="pagename sixteen columns fadeInUp animated"> <
<div class="container clearfix">
<div class="pagename sixteen columns fadeInUp animated">
<h1 style="font-family: Merriweather">Portfolio</h1>
</div>
</div>
<div class="container clearfix" ng-controller="portfolioController">
<ul style="padding-left: 20pt" class="large-block-grid-4 align-center">
<li class="part" ng-repeat="project in projects">
<a href="#/indiv?id={{ project.id }}">
<img src="{{ project.screenshot_uri }}" alt="">
</a>
<br><br>
<h4>{{ project.project_name }}</h4>
<p>{{ project.description }}</p>
</li>
</ul>
</div><br><br>
问题似乎在于您定义的角度路由url与标记中的url略有不同 路线:
在您正在定义的路由url中
/indiv:id
。但是,这将匹配一个url,其中id是indiv
部分的一部分。所以,http://host/indiv123
因此,我建议将其更改为:/indiv/:id
。这将匹配如下URL:http://host/indiv/123
标记:在HTML中,您将url声明为
#/indiv?id={{project.id}
。这将生成url:/indiv?id=123
为了匹配新的角度路由,我们需要模板为#/indiv/{{project.id}
,这样我们就可以生成一个类似/indiv/123
的url
希望这有帮助。您应该使用:
ng-href="#/indiv?id={{ project.id }}"
而不是
href="#/indiv?id={{ project.id }}"
这可以确保{{project.id}}在用作链接之前得到正确解析
这是因为在浏览器尝试解析href和src()属性之前,Angular并不总是有机会截获数据绑定请求。因此,您应该对图像使用ngsrc 应该是:
$routeProvider。当('/indiv/:id'
?href=“/indiv?id={{project.id}}”
-这应该是不同的吗?href=“\/indiv/{project.id}”
将对应于$routeProvider。当('/indiv/:id'
啊,这就是问题所在。它现在可以工作了,谢谢你!
href="#/indiv?id={{ project.id }}"