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 %> <% 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 为您处理。
我在组合 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 %> <% 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 为您处理。