使用角度从php视图访问laravel路径

时间:2014-07-08 19:12:52

标签: angularjs laravel params laravel-routing

在Laravel有这条路线: Route::get('post/{id}/comments','PostCommentsController@showComments'); 我试图从php视图中的锚点html标记href属性访问它,它使用angular来呈现项目列表。这是该视图中的一段代码(_post_content.php):

    <ul class="media-list" >
       <li class="media" ng-repeat="item in items" >
       <div class="media-body">
            <div class="row">
                <div class="col-sm-9"><h5 class="media-heading">
                    <a href="post/{{item.id}}/comments">{{ item.title }}</a> </h5></div>
            </div>
      </div>
      </li>
   </ul>

控制器PostCommentsController在方法showComments中创建的新视图类似于_post_content.php,但它显示了帖子ID(ng-repeat中的item.id)的注释。 但是,对于整个应用程序的其他链接,即使在其主要布局中:导航栏和徽标锚,图像锚等;它的网址前面是路径/帖子/ 4 /评论。 例如,如果我点击_post_content.php的第4项,主布局左侧导航栏中名为博客的链接,将其显示为url:/ post / 4 / comments / blog 当然这条路线不存在并且打破了所有应用程序。

请解决这个奇怪行为的任何线索?虽然我没有使用角度路线,但角度是否可能导致它?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果您使用其他链接的相对路径,则应使用正斜杠添加它们,而不是:

<a href="blog">
你应该有:

<a href="/blog">

这样,链接将相对于根而不是当前路径(在您的情况下为/post/id/comments)。

作为替代方案,您还可以使用base元标记,将其包含在您的网页“<head>中:

<base href="http://yourdomain.com/">

但请注意,使用可能会影响您的应用程序的base会产生一些副作用。阅读本文以获取更多信息:Is it recommended to use the <base> html tag?