Sono ancora molto nuovo in AngularJS e sto lavorando per impostare la mia prima applicazione. Vorrei essere in grado di effettuare le seguenti operazioni:Uso dei controller AngularJS creati con angular.module(). Controller()
angular.module('App.controllers', [])
.controller('home', function() {
$scope.property = true;
}]);
angular.module('App', ['App.controllers'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/', {templateUrl: 'partials/home.html', controller: home});
}]);
Utilizzando questa configurazione viene generato il seguente errore:
Uncaught ReferenceError: home is not defined from App
La mia domanda è: come posso registrare i controller utilizzando angular.module.controller()
(o $controllerProvider.register()
direttamente) e utilizzare il controller registrato altrove nella mia app.
La mia motivazione: vorrei evitare di utilizzare le funzioni di global constructor come i miei controller (come la maggior parte degli esempi su angularjs.org use) o il namespaces complesso. Se riesco a registrare e utilizzare i controller come nomi di variabili singole (che non vengono poi inseriti nell'ambito globale) sarebbe l'ideale.
Grazie, che ha fatto il trucco. Cosi 'semplice. –
La soluzione di cui sopra non sembra funzionare ... Ricevo "Errore: Argomento 'PhoneListCtrl' non è una funzione, ha ottenuto una stringa". Aiuto! – mpowered
Se si definisce il controller come una funzione ('function PhoneListCtrl() {}'), è necessario fare riferimento come funzione. Se lo definisci con .controller ('app.controller ('PhoneListCtrl', function() {})', dovresti fare riferimento a una stringa: –