AngularJS 和 Laravel Blade:更改 interpolateProvider(分隔符)时出现模块错误

AngularJS and Laravel Blade: Module Error when changing the interpolateProvider (Delimiter)

我在组合 Laravel 5(与 Blade)和 Angular 1.3 时遇到一个奇怪的问题。

我对 Laravel 很有经验,但对 Angular 还是个新手。我知道我必须更改 Angular 的分隔符才能使其与 Laravel 的 Blade 一起使用。

这就是我所做的:

//app.js

(function(){

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



  app.controller('TeamController', function(){

    // Do Something
  });

})();

在我的视图文件中,我定义了 ng-app 和 ng-controller。我的目标是遍历 JSON。 JSON 不是上面 JS 的一部分 - 我知道这一点。

<div class="container" ng-app="TeamManager">

<hr>
<div class="row" ng-controller="TeamController as team">
    <div class="col-xs-4">
        <div class="teamlist-container">
            <table class="table table-striped">
                    <tr ng-repeat='member in teammembers'>
                        <td><% member.firstname %>&nbsp;<% member.lastname %></td>
                    </tr>
                </table>
        </div>
    </div>      

</div><!-- /row -->
<hr>

如果我省略 $interpolateProvider 代码,一切正常,控制台上不会显示任何错误。有了它 - 然而 - nothings 运行了。我收到未捕获的错误:[$injector:modulerr]

当我跟着它的时候,我来到:Error: $injector:unpr Unknown Provider

我错过了什么吗?我尝试了 AngularJS 文档和一些教程中的代码。所以应该没问题。每次我 运行 都犯这个错误,这让我发疯。

有人可以帮我解决这个问题,我将不胜感激。

非常感谢, AFX

我认为您没有正确注入提供程序,它应该在您应用的配置方法的回调中。

尝试:

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

app.config(function($interpolateProvider) {
    $interpolateProvider.startSymbol('<%');
    $interpolateProvider.endSymbol('%>');
});

Update:对于 OP,缩小过程与使用的 angular 语法不一致。提问者需要通过以下方式注入依赖项才能与 minify/uglify:

一起使用
var app = angular.module('TeamViewer', ['deps', function(deps) {
    //...
}]);

并且:

app.config(['$interpolateProvider', function($interpolateProvider) {
    //...
}]);

此语法在缩小和丑化时是安全的。

您不必更改 $interpolate。要为 angular 使用默认的 {{ }} 分隔符,只需添加 @{{}},Blade 会让 javascript 为您处理。