O seguinte arquivo "funciona" (a sensação de que não gera nenhum erro):
<!doctype html>
<html ng-app="modx">
<script src="http://code.angularjs.org/angular-1.0.0rc7.js"></script>
<script>
angular.module("modx", [], function($routeProvider) {
});
</script>
</html>
mas isso
<!doctype html>
<html ng-app="modx">
<script src="http://code.angularjs.org/angular-1.0.0rc7.js"></script>
<script>
angular.module("modx", [], function($routeProvider, $rootScope) {
});
</script>
</html>
dá o erro:
Erro: Fornecedor desconhecido: $ rootScope do modx
Arquivo de origem: http://code.angularjs.org/angular-1.0.0rc7.js
Linha: 2491
WTF?
Respostas:
Você não pode solicitar, por exemplo, durante a fase de configuração - você pode solicitar apenas fornecedores.
Veja http://docs.angularjs.org/guide/module para mais informações.
fonte
config
? dizer caminho raiz dentro do aplicativo asp.net? Eu só não quero usar variáveis globais e queria usarng-init='root:<%= myroot %>'
e usarroot
valormodule.config
.angular.module('config', []).constant('appRoot', '/local/js/app');
(este código seria gerada pelo seu servidor (você ainda pode gerá-lo como um arquivo JS, em vez de inlining no arquivo html) Então, suas cargas app este módulo e, portanto, tem acesso.appRoot
.Eu achei o seguinte "padrão" muito útil:
onde MainCtrl é um controlador. Fico desconfortável ao confiar nos nomes dos parâmetros da função Controller, fazendo uma imitação um por um das instâncias, com medo de que eu possa mudar de nome e estragar tudo. Eu prefiro explicitamente usar $ inject para esse fim.
fonte
MainCtrl
assim?angular.module('myMod', []).controller('theController', controllerFunction); controllerFunction.$inject = []; function controllerFunction() { }
Eu não sugiro que você use sintaxe como você fez. AngularJS permite-lhe ter diferentes funcionalidades como você quer (
run
,config
,service
,factory
, etc ..), que são mais professional.In esta função, você não tem sequer para injetar que por si mesmo comovocê pode usá-lo, como você sabe.
fonte