猿问

用r.js打包依赖,发现angular报错,我是使用require引入angular文件的

angular.js文件
define(['angular'],function(){
	angular.module("todosa",[]).controller("todosAngular",function($scope){
		$scope.sum=newArray();
		varfn=function(){
			if($scope.sum.length<10){
				if($scope.arr!==""&&$scope.arr!==undefined){
					$scope.sum.unshift($scope.arr);
					$scope.arr="";
				}
			}else{
				alert("已经10个了,不能在增加了。");
				$scope.arr="";
			}
		}
		$scope.todosAclick=function(){
			fn();
		};
		$scope.todosAremove=function(){
			$scope.sum=[];
			$scope.arr="";
		};
		$scope.todosAre=function(s){
			$scope.sum.splice(s,1);
		};
		$scope.akeydown=function(e){
			if(e.keyCode==13)fn();
		};
	});
})
main.js,reuiqre入口文件
require.config({
baseUrl:"../js/",
paths:{
'jquery':'lis/jquery.min',
'avalon':'lis/avalon.min',
'angular':'lis/angular.min'
}
});
require(['todosAngular','todosjs','todosAvalon','todosJquery'],function(){
});
R.js
({
baseUrl:".",
name:'todosmain',
paths:{
'jquery':'lis/jquery.min',
'avalon':'lis/avalon.min',
'angular':'lis/angular.min'
},
excludeShallow:["angular","avalon","jquery"],
out:"todos-Set.js"
})
报错信息
Error:[$injector:unpr]http://errors.angularjs.org/1.4.3/$injector/unpr?p0=eProvider%20%3C-%20e%20%3C-%20todosAngular
atError()
athttp://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:6:416
athttp://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:40:375
atObject.d[asget](http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:38:364)
athttp://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:40:449
atd(http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:38:364)
atObject.e[asinvoke](http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:39:124)
atP.instance(http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:80:122)
atS(http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:61:199)
atg(http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:54:384)
这是我写的todos小demo而已,想尝试用r.js打包,但是angular不停保存。没用r.js打包前基本没有报错。demo地址:为打包打包后
哈士奇WWW
浏览 393回答 2
2回答

青春有我

1.我大概知道你的错误在哪里了,看报错的信息应该是依赖注入的问题,你要需要把依赖的那些东西注入到你的控制器,像上面的$scope是要注入到控制其中的,应该这样写:App.controller("CtrlName",["$scope",function($scope){...}])因为如果不这样的话,打包的时候就破坏了它的结构,所以会报错;我在用手机给你回复,不方便,如果有时间我用电脑给你更详细的解释。(不知道为什么修改之后老是乱码。。。)

波斯汪

在你用r.js打包之前,先用ngAnnotate处理一下依赖注入的语法(这样你就用不着那种数组模式的语法了),当然最好使用构建工具把这个过程自动化了。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答