【问题标题】:laravel route access from php view using angular使用角度从php视图访问laravel路由
【发布时间】:2014-08-29 16:00:05
【问题描述】:

在 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)显示 cmets。 但是,对于整个应用程序中的其他链接,甚至在其主要布局中:导航栏和徽标锚点、图像锚点等;它的 url 前面有路径 /post/4/cmets。 例如,如果我单击 _post_content.php 的第 4 项,主布局左侧导航栏中名为 blog 的链接将显示为 url:/post/4/cmets/blog 当然这个路由是不存在的,会破坏所有的应用。

请问有什么线索可以解决这个奇怪的行为吗?尽管我没有使用角度路线,但是否有可能是角度造成的?

感谢您的帮助。

【问题讨论】:

    标签: angularjs laravel params laravel-routing


    【解决方案1】:

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

    <a href="blog">
    

    你应该有:

    <a href="/blog">
    

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

    作为替代方案,您也可以使用base 元标记,将其包含在您页面的&lt;head&gt;

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

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

    【讨论】:

    • 非常感谢@Bogdan。这两个建议都解决了这个问题。当然,我会查看特殊的元标记 ,这确实看起来很有趣。
    猜你喜欢
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 2021-07-02
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多