【问题标题】:Laravel {!! Form::open() !!} doesn't work within AngularJS拉拉维尔{!! Form::open() !!} 在 AngularJS 中不起作用
【发布时间】:2016-03-19 12:59:11
【问题描述】:

我正在使用Laravel 5.0 + AngularJS 建立一些网站。问题是当我使用 laravel 照明时,像

{!! Form::open() !!}
{!! Form::close() !!}

不会编译成表单,而是显示纯文本。

我猜是因为我也在使用 angular,它已经对 '{}' 有一定的使用;

当我在另一个没有角度的页面中使用 {!! Form::open() !!} 时,它可以正常工作。

如何在 Angular 应用程序中使用 laravel 表单? (需要csrf token之类的功能)

【问题讨论】:

  • 这和angularjs没有任何关系。 AngularJs 不使用 {!! !!}} 如果你做对了,Laravel 会在返回视图之前将它们编译成 html
  • 但是当我包含 {!!形式::open() !!}{!! Form::close() !!} 在项目的另一个页面中它正常工作(该页面没有任何角度使用)
  • 让我看看完整的刀片模板以及如何从控制器返回视图
  • 现在只是单页视图,模板在:bitbucket.org/xuan9230/fpv-freerider/src/…line275,276
  • 没关系..我把它命名为 index.blade.php 而不是 index.php 真是太愚蠢了。还要感谢@Sean Perkins,您介绍了一个很好的方法,我可以在未来!

标签: javascript angularjs forms laravel


【解决方案1】:

您需要更改 laravel 的刀片语法或更改 AngularJS 的语法。我倾向于为 Lavavel 更改它。

Blade::setContentTags('<%', '%>');        // for variables and all things Blade
Blade::setEscapedContentTags('<%%', '%%>');   // for escaped data

将其添加到一个通用文件中,例如routes.php

将您的参考资料从{!! 更新为&lt;%!!}%&gt;

编辑:

如果您想在 AngularJS 端执行此操作,可以将其添加到您的 app.js 文件中(来源:scotch.io)。

var sampleApp = angular.module('sampleApp', [], function($interpolateProvider) {
    $interpolateProvider.startSymbol('<%');
    $interpolateProvider.endSymbol('%>');
});

将模块名称替换为您项目的应用模块名称。

【讨论】:

  • 试图在 Laravel 端进行更改,将它们添加到 routes.php 但对我来说并没有真正起作用.. 仍然显示
猜你喜欢
  • 1970-01-01
  • 2019-04-13
  • 2017-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-31
  • 1970-01-01
  • 2014-09-18
相关资源
最近更新 更多