Die folgende Datei "funktioniert" (das Gefühl, dass sie keine Fehler auslöst):
<!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>
aber dieses
<!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>
gibt den Fehler:
Fehler: Unbekannter Anbieter: $ rootScope von modx Quelldatei
: http://code.angularjs.org/angular-1.0.0rc7.js
Zeile: 2491
WTF?
Antworten:
Sie können beispielsweise während der Konfigurationsphase nicht nachfragen - Sie können nur nach Anbietern fragen.
Weitere Informationen finden Sie unter http://docs.angularjs.org/guide/module .
quelle
config
? Root-Pfad in der asp.net-App sagen? Ich möchte einfach keine globalen Variablen verwenden und wollte Wert verwendenng-init='root:<%= myroot %>'
und verwenden .root
module.config
angular.module('config', []).constant('appRoot', '/local/js/app');
(Dieser Code wird von Ihrem Server generiert (Sie können ihn sogar als JS-Datei generieren, anstatt ihn in die HTML-Datei einzufügen). Dann lädt Ihre App dieses Modul und hat daher Zugriff aufappRoot
.Ich habe das folgende "Muster" als sehr nützlich empfunden:
Dabei ist MainCtrl ein Controller. Es ist mir unangenehm, mich darauf zu verlassen, dass die Parameternamen der Controller-Funktion die Instanzen eins zu eins nachahmen, aus Angst, ich könnte Namen ändern und Dinge durcheinander bringen. Ich bevorzuge es sehr, $ inj explizit für diesen Zweck zu verwenden.
quelle
MainCtrl
so zu?angular.module('myMod', []).controller('theController', controllerFunction); controllerFunction.$inject = []; function controllerFunction() { }
Ich empfehle Ihnen nicht, die Syntax so zu verwenden, wie Sie es getan haben. AngularJS können Sie verschiedene Funktionalitäten haben , wie Sie wollen (
run
,config
,service
,factory
, etc ..), die mehr professional.In diese Funktion müssen Sie nicht einmal , dass injizieren selbst wieSie können es verwenden, wie Sie wissen.
quelle