laravel 5和angularjs标签冲突的哪种方法很好用?

时间:2016-10-17 07:42:52

标签: angularjs laravel laravel-5

我在laravel视图中有打印值问题,我试图在laravel blade中打印$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';
    });

现在在刀片中我可以打印<% text_print %>

2-添加@以打印angularjs $scope

我找到了一个上升的answer,其中@Paul A.T.威尔逊说那个

  

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

示例@{{text_print}}

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

任何人都可以指导我这件事,我很感激。谢谢

1 个答案:

答案 0 :(得分:2)

  

如果您希望插件与旧版本的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('<%%', '%%>');
    }
    

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

  

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

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

逐字注释表示该部分 as-is ,即:Blade会将其删除。