【问题标题】:Pass AngularJS data to Laravel generated URL将 AngularJS 数据传递给 Laravel 生成的 URL
【发布时间】:2015-05-23 21:49:33
【问题描述】:

我正在构建 Laravel 和 AngularJS 应用程序。我使用 Angular 将 HTTP GET 请求发送到 Laravel 路由并在将其写入 HTML 之前获取 JSON 数据。我使用 Laravel 进行路由,因为 Angular 只出现在几个页面上。

我的网站有一个工作列表,通过 Angular 一次显示 5 个。每个工作的标题旁边是一个“发送消息”选项。我认为的代码是这样的:

<ul>
    <li ng-repeat="job in main.jobs">
        <a href="@{{ job.slug }}">@{{ job.title }}</a> -
        <a href="{{ URL::route('sendmessage', ["@{{ job.slug }}"]) }}">Send a Message</a>
    </li>
</ul>

数据完美呈现,但是我不能使用 Angular 的 URL::route 函数来呈现以 job.slug 作为参数的路由 URL。

我的 routes.php 文件如下所示:

Route::get('jobs/{slug}/messages/create', [
    'as'   => 'sendmessage',
    'uses' => 'MessageController@create'
]);

注意这是一个刀片文件,我在{{ }} 之前使用@ 来渲染Angular。

我的考试题:如何使用刀片在 URL::route 外观中回显 Angular 数据

【问题讨论】:

  • 不知道为什么需要将服务器端模板和客户端模板混合在一起。维护似乎是一场噩梦。也不清楚你的具体问题是什么
  • 你试过使用 ng-href 吗?
  • 我认为,如果您没有适当地构建您的应用程序,维护就会成为一个问题。在几个月后投入生产之前,我只想在开发网站的几个页面上使用 Angular
  • 如果有帮助,您可以为更多读者接受我的回答 :)
  • @limonte - 抱歉,不是

标签: php angularjs laravel blade


【解决方案1】:

您可以设置自定义AngularJS花括号,以防止与Blade模板引擎冲突:

var app = angular.module('app', []) 

  .config(function($interpolateProvider) {
    // To prevent the conflict of `{{` and `}}` symbols
    // between Blade template engine and AngularJS templating we need
    // to use different symbols for AngularJS.

    $interpolateProvider.startSymbol('<%=');
    $interpolateProvider.endSymbol('%>');
  });

我建议使用&lt;%= %&gt;,因为它是常用的结构,你可以在Underscore templates找到它。

之后您的代码将如下所示:

<ul>
    <li ng-repeat="job in main.jobs">
        <a href="<%= job.slug %>"><%= job.title %></a> -
        <a href="{{ URL::route('sendmessage', ["@{{ job.slug }}"]) }}">Send a Message</a>
    </li>
</ul>

【讨论】:

  • 供参考,反过来也是可以的。这意味着您也可以重新定义 Blade 标签,例如:Blade::setEscapedContentTags('[[', ']]');Blade::setContentTags('[!!', '!!]');。但从这个问题看来,最好的解决方案是更改 Angular 模板标签。
  • 问题不冲突。问题是如何使用刀片回显角度数据?
  • @BarryBlade 如果您想使用刀片回显角度数据,那么您做错了。换句话说,您想在后端回显客户端数据,这对我来说毫无意义。
  • @limonte - 不。我只想让 Blade 忽略数据,以便 Angular 处理它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-11
  • 2014-03-24
  • 2019-03-14
  • 2015-12-24
  • 1970-01-01
  • 2014-04-07
  • 2020-02-14
相关资源
最近更新 更多