【问题标题】:Which method is good to use for laravel 5 and angularjs tag conflict?laravel 5和angularjs标签冲突用哪种方法好?
【发布时间】:2016-10-17 07:42:51
【问题描述】:

我在 laravel 视图中出现打印值问题,我试图在 laravel 刀片中打印 $scope 值。我搜索并找到了两种解决方案。

1-更改angularjs打印标签

通过这个method 我可以更改 angularjs 打印标签。

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

    app.controller('app', function ($scope, $http) {
        $scope.text_print = 'this is text';
    });

现在在刀片中我可以像 &lt;% text_print %&gt; 一样打印

2- 添加@ 用于打印angularjs $scope

我找到了一个投票赞成的answer,其中@Paul A.T.威尔逊这么说

最简单的方法是在你的 Angular 代码前面简单地使用@

例如@{{text_print}}

两者都为我工作,实际上我想制作一个插件,那么我应该使用哪种方法?因为我不确定第二个是否与 laravel 旧版本兼容。我希望我的插件与所有版本的 laravel 兼容。

谁能指导我这件事,我很感激。谢谢你

【问题讨论】:

  • 你要做php插件还是angularJs插件?
  • @atefth 我想为 laravel 制作插件,所以我会同时使用 php(laravel 的东西)和 angularjs。

标签: angularjs laravel laravel-5


【解决方案1】:

如果您希望插件与旧版本的 Laravel 一起使用,更改 Blade 或 angular 的插值字符串是最佳选择。

  • 对于 angularJs,您已经从 here 知道如何操作。
  • 对于 Blade,在你的 Laravel 应用的 AppServiceProvider.php 文件的启动函数中添加以下代码:

    public function boot() {
      Blade::setRawTags("[[", "]]");
      // for variables and Blade
      Blade::setContentTags('<%', '%>');
      // for escaped data
      Blade::setEscapedContentTags('<%%', '%%>');
    }
    

注意:在我看来,更改 angular 的插值标签更容易,因为更改刀片的插值标签需要您清除 storage/framework/views 文件夹。

显然还有另一种方法可以做到这一点,但我不确定它是否适用于旧版本:

@verbatim
<div>
  {{ variableOne }}
  {{ variableTwo }}
</div>
@endverbatim

逐字注释表明该部分是原样,即:Blade 会将其省略。

【讨论】:

  • 感谢分享知识+1
  • @Mr.Developer 请让我知道逐字注释是否适合您。
猜你喜欢
  • 2015-04-17
  • 1970-01-01
  • 2020-04-02
  • 2015-04-15
  • 2012-01-08
  • 1970-01-01
相关资源
最近更新 更多