使用 Laravel 5 与 AngularJS blade 标签冲突
Using Laravel 5 with AngularJS blade tag conflict
我正在尝试将 Angular 设置为 Laravel 5。
我试过在 appServiceProvider 中做:
public function boot()
{
\Blade::setRawTags("[[", "]]");
\Blade::setContentTags('<%', '%>'); // for variables and all things Blade
\Blade::setEscapedContentTags('<%%', '%%>'); // for escaped data
}
有:
<div>
<input type="text" ng-model="yourName" placeholder="Enter a name here">
<h1>Hello, {{ yourName }}!</h1>
</div>
但我得到:
Use of undefined constant yourName - assumed 'yourName'...
在进行与 Blade 相关的更改(扩展 Blade、更改标签等)时,请始终确保删除缓存的视图。
它们位于 storage/framework/views
。
只删除所有文件(.gitignore
除外)
如果你想要更实用的东西,你可以创建一个命令来做到这一点。喜欢this one
最简单的方法是在 Angular 代码前简单地使用 @:
<div>
<input type="text" ng-model="yourName" placeholder="Enter a name here">
<h1>Hello, @{{ yourName }}!</h1>
</div>
否则你修改 angular 语法...
var sampleApp = angular.module('sampleApp', [], function($interpolateProvider) {
$interpolateProvider.startSymbol('<%');
$interpolateProvider.endSymbol('%>');
});
Laravel >= 5.3
虽然在大括号前添加 @ 仍然有效,但 Laravel 还包括另一个方便的 blade 实用程序,可让您标记整个块 as-is:
@verbatim
<div>
{{ ctl.variable1 }}
{{ ctl.variable2 }}
</div>
@endverbatim
如果您不经常使用 Blade 模板渲染
,则特别有用
我正在尝试将 Angular 设置为 Laravel 5。
我试过在 appServiceProvider 中做:
public function boot()
{
\Blade::setRawTags("[[", "]]");
\Blade::setContentTags('<%', '%>'); // for variables and all things Blade
\Blade::setEscapedContentTags('<%%', '%%>'); // for escaped data
}
有:
<div>
<input type="text" ng-model="yourName" placeholder="Enter a name here">
<h1>Hello, {{ yourName }}!</h1>
</div>
但我得到:
Use of undefined constant yourName - assumed 'yourName'...
在进行与 Blade 相关的更改(扩展 Blade、更改标签等)时,请始终确保删除缓存的视图。
它们位于 storage/framework/views
。
只删除所有文件(.gitignore
除外)
如果你想要更实用的东西,你可以创建一个命令来做到这一点。喜欢this one
最简单的方法是在 Angular 代码前简单地使用 @:
<div>
<input type="text" ng-model="yourName" placeholder="Enter a name here">
<h1>Hello, @{{ yourName }}!</h1>
</div>
否则你修改 angular 语法...
var sampleApp = angular.module('sampleApp', [], function($interpolateProvider) {
$interpolateProvider.startSymbol('<%');
$interpolateProvider.endSymbol('%>');
});
Laravel >= 5.3
虽然在大括号前添加 @ 仍然有效,但 Laravel 还包括另一个方便的 blade 实用程序,可让您标记整个块 as-is:
@verbatim
<div>
{{ ctl.variable1 }}
{{ ctl.variable2 }}
</div>
@endverbatim
如果您不经常使用 Blade 模板渲染
,则特别有用