2016-10-18 2 views
0

Ich habe gerade angular js gestartet und ich begann mit der grundlegenden Deklaration eines Moduls ohne Dienste und Fabriken. Es funktionierte gut, bevor Services und Fabriken hinzugefügt wurden. Jetzt, nachdem Dienste und Fabriken hinzugefügt wurden, funktioniert es nicht mehr.angular ohne Abhängigkeiten funktioniert nicht

Die erste Erklärung, die nicht mehr funktioniert:

angular.module('root',[]) 
.controller("index",["$scope",function ($scope){ 
    $scope.message="My name"; 
    $scope.favouriteWord; 
    $scope.favouriteColor; 
    $scope.favouriteShape; 
    $scope.value = 1; 
    $scope.isBold = function() { 
     return ($scope.value % 2===0); 
    } 

    $scope.isUnderlined = function() { 
     return ($scope.value % 5===0); 
    } 

    $scope.products=[ 
       {id: 1, name:"House Jockey"}, 
       {id: 2, name:"Golf club"}, 
       {id: 3, name:"Baseball Bat"}, 
       {id: 4, name:"Lacrosse stick"}]; 
    $scope.favsha = true; 
    $scope.factor = 6; 
    $scope.product = $scope.factor * 2; 
}]); 

Die Fabrik hinzugefügt:

angular.module('root',["services"]) 
.controller("index",["$scope","square",function ($scope,square){ 
    $scope.product=square; 
}]); 

Der Service hinzugefügt:

angular.module('root',["services"]) 
.controller("index",["$scope","message",function ($scope,message){ 
     $scope.message=message; 
}]); 
+0

Was ist '[" services "]' Abhängigkeit, die Sie der App hinzugefügt haben? –

+0

Es ist ein Modul namens Dienste – athene

+0

Wo ist es? Haben Sie ein Modul namens "Services" definiert? –

Antwort

0

Sie erneut deklariert das Modul 'root' anstatt ein neues Modul 'Dienste' hinzuzufügen, da Sie wieder 'Dienste' zu den Abhängigkeiten hinzugefügt haben. Sie müssen "root" im neuen Modul nicht neu deklarieren, da es eigenständig und portabel sein sollte. Überprüfen Sie die Modul-Dokumentation aus: https://docs.angularjs.org/guide/module

Ihre ‚Dienstleistung‘ Modul sollte wie folgt erklärt werden:

angular.module('services']) 
.controller("index",["$scope","message",function ($scope,message){ 
$scope.message=message; 
}]); 
+0

Ich erwähnte, dass mein Service und meine Fabrik beide gut funktionieren, das einzige Problem ist das ohne Service oder Fabrik – athene

+0

Sorry, ich habe das falsch verstanden. Können Sie bitte den Code der Nachricht und des Quadrats zeigen? –

0

Sie sind ein wichtiger Teil der angular.module Funktion fehlt.

Die Funktion agiert abhängig von den übergebenen Argumenten als Getter und Setter.

angular.module('module name', [...])

Wo [...] die Anordnung von Abhängigkeiten ist, ist ein "Setter", so wird es ein Modul erstellen.

Jetzt, nachdem es erstellt wurde, um das Modul zu erhalten und Controller, Dienste usw. hinzuzufügen, lassen Sie das Array der Abhängigkeiten weg.

angular.module('module name')

Außerdem müssen Sie das services Modul vor Ihrem root Modul definieren.

// Define 'services' module 
angular.module('services', []); 

// Adds factory to 'services' module 
angular.module('services').factory('factoryName', function() { 
    // Implement factory... 
}); 

// Define 'root' module 
angular.module('root', ['services']); 

// Adds controller to 'root' module 
angular.module('root').controller('controllerName', ['$scope', 'factoryName', function($scope, factoryName) { 
    // Implement controller... 
}]); 
0

Dienstleistungen oder Fabriken in AngularJS kann nicht aus dem Modul

angular.module('root',["services"]) 

die oben ist falsch

Dienste und Fabriken werden an die Steuerung direkt

angular.module('root',[]) 
.controller("index",["$scope","service",function ($scope,service){ 

injiziert injiziert werden Wenn Ihr Problem nicht behoben wird, senden Sie bitte den Service/Factory-Code, vielleicht mehr Idee auf Problem.