recherche

Maison  >  Questions et réponses  >  le corps du texte

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

angular.js文件

define(['angular'],function(){
	angular.module("todosa",[]).controller("todosAngular",function($scope){
		$scope.sum=new Array();
		var fn=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
    at Error (<anonymous>)
    at http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:6:416
    at http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:40:375
    at Object.d [as get] (http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:38:364)
    at http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:40:449
    at d (http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:38:364)
    at Object.e [as invoke] (http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:39:124)
    at P.instance (http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:80:122)
    at S (http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:61:199)
    at g (http://127.0.0.1:4000/sunshine/add/js/lis/angular.min.js:54:384) 

这是我写的todos小demo而已,想尝试用r.js打包,但是angular不停保存。没用r.js打包前基本没有报错。
demo地址:
为打包
打包后

迷茫迷茫2744 Il y a quelques jours669

répondre à tous(2)je répondrai

  • 某草草

    某草草2017-05-15 16:56:34

    1. Je sais probablement où se trouve votre erreur. En regardant le message d'erreur, il devrait s'agir d'un problème d'injection de dépendances. Vous devez injecter les éléments dépendants dans votre contrôleur. Le contrôle doit être écrit comme ceci : App.controller("CtrlName",["$scope",function($scope){...}]) car sinon, sa structure sera détruite lors du packaging. Donc une erreur. sera signalé ; je vous réponds sur mon téléphone portable, ce qui est gênant, si j'ai le temps, je vous donnerai une explication plus détaillée sur mon ordinateur.

    (Je ne sais pas pourquoi le code est toujours tronqué après modification...)

    répondre
    0
  • 为情所困

    为情所困2017-05-15 16:56:34

    Avant de packager avec r.js, utilisez ngAnnotate pour gérer la syntaxe d'injection de dépendances (vous n'avez donc pas besoin de la syntaxe du mode tableau. Bien sûr, il est préférable d'utiliser un outil de construction pour automatiser ce processus).

    répondre
    0
  • Annulerrépondre