当我尝试在我的 AngularJS 应用程序上执行 gulp serve
时,出现以下错误消息:
Error: [$injector:modulerr] Failed to instantiate module myAppName due to:
$compileProvider.preAssignBindingsEnabled is not a function
@http://localhost:9805/app/scripts/app.js:43:9
invoke@http://localhost:9805/lib/angular/angular.js:5108:16
runInvokeQueue@http://localhost:9805/lib/angular/angular.js:4997:11
loadModules/<@http://localhost:9805/lib/angular/angular.js:5007:11
forEach@http://localhost:9805/lib/angular/angular.js:387:11
loadModules@http://localhost:9805/lib/angular/angular.js:4987:5
createInjector@http://localhost:9805/lib/angular/angular.js:4904:19
doBootstrap@http://localhost:9805/lib/angular/angular.js:1936:20
bootstrap@http://localhost:9805/lib/angular/angular.js:1957:12
angularInit@http://localhost:9805/lib/angular/angular.js:1842:5
@http://localhost:9805/lib/angular/angular.js:35431:5
mightThrow@http://localhost:9805/lib/jquery/dist/jquery.js:3534:21
调用代码如下:
/*
* Main module of the application.
*/
angular
.module('dataPipelineApp', [
//various parameters
])
.config(['$compileProvider', '$httpProvider', '$breadcrumbProvider', function ($compileProvider, $httpProvider, $breadcrumbProvider) {
//initialize get if not there
if (!$httpProvider.defaults.headers.get) {
$httpProvider.defaults.headers.get = {};
}
$compileProvider.preAssignBindingsEnabled(true); //err here
$httpProvider.defaults.headers.get['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT';
// extra
$httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';
$httpProvider.defaults.headers.get['Pragma'] = 'no-cache';
$compileProvider.debugInfoEnabled(false); // speed up angular performance to not print debug info;
$breadcrumbProvider.setOptions({
templateUrl: 'app/views/headerBar.html'
});
//$httpProvider.defaults.headers.common['Access-Control-Allow-Origin'] = '*';
$httpProvider.interceptors.push("AddToken");
$httpProvider.interceptors.push("UnauthorizeInterceptor");
}])
类似的搜索结果表明这可能是版本不一致的问题。关于此问题的类似搜索结果还表明,angular-mocks 的版本存在问题,但我们根本没有使用 angular mocks。我尝试将 Angular 降级到1.5.5,其他搜索结果建议不能超过该版本——尽管我的同事都在使用1.6.10或更高版本的 Angular。我还尝试使用npm安装angular-mocks,尽管它没有被使用,并将其版本与我们的Angular匹配,但无济于事。我真的不知道该怎么做,也不确定实际发生了什么,为什么它找不到那个函数?
编辑:我还在浏览器中进行了检查,在控制台上运行了一个
angular.version
搜索——它显示我的Angular版本是1.7.2,尽管我在npm安装旧版本后重新执行了gulp build
和gulp inject serve
。似乎它没有正确选择正确的版本——有什么我需要注意的以强制执行降级安装吗?
preAssignBindingsEnabled(true)
代码的同事们,都能够运行并提供应用程序而没有出现此问题呢? - NateH06