Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angularJS中的routeProvider行为不正确_Angularjs - Fatal编程技术网

angularJS中的routeProvider行为不正确

angularJS中的routeProvider行为不正确,angularjs,Angularjs,在我的视图中,我正在输出链接。当我点击一个链接时,它会触发routeProvider中的otherwise方法,并最终重定向回主页。我需要它重定向indiv id,并且我需要能够在控制器内从我的视图中获取project.id。我可以帮忙吗。我有点困了 我的看法是: <div class="container clearfix"> <div class="pagename sixteen columns fadeInUp animated"> <

在我的视图中,我正在输出链接。当我点击一个链接时,它会触发routeProvider中的otherwise方法,并最终重定向回主页。我需要它重定向indiv id,并且我需要能够在控制器内从我的视图中获取project.id。我可以帮忙吗。我有点困了

我的看法是:

<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 }}"