Właśnie zacząłem kanciaste js i zacząłem odpodstawowa deklaracja modułu bez usług i fabryk. Działało dobrze przed dodaniem usług i fabryk. Teraz po dodaniu usług i fabryk już nie działa.
Pierwsza deklaracja, która już nie działa:
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;
}]);
Dodano fabrykę:
angular.module("root",["services"])
.controller("index",["$scope","square",function ($scope,square){
$scope.product=square;
}]);
Usługa dodana:
angular.module("root",["services"])
.controller("index",["$scope","message",function ($scope,message){
$scope.message=message;
}]);
Odpowiedzi:
0 dla odpowiedzi № 1Ponownie wysyłasz moduł „root” zamiastdodanie nowego modułu „usługi”, ponieważ ponownie dodałeś „usługi” do swoich zależności. Nie musisz redeclare „root” w nowym module, ponieważ powinien być samodzielny i przenośny. Sprawdź dokumentację modułu: https://docs.angularjs.org/guide/module
Twój moduł „usługi” powinien być deklarowany w ten sposób:
angular.module("services"])
.controller("index",["$scope","message",function ($scope,message){
$scope.message=message;
}]);
0 dla odpowiedzi nr 2
Brakuje ważnej części funkcji angular.module.
Funkcja działa jako getter i setter, w zależności od podanych argumentów.
angular.module("module name", [...])
Gdzie [...] jest tablicą zależności, jest „ustawiaczem”, więc utworzy moduł.
Teraz, po utworzeniu, aby uzyskać moduł i dodać kontrolery, usługi itp., Pomiń tablicę zależności.
angular.module("module name")
Ponadto musisz zdefiniować services
moduł przed twoim root
moduł.
// 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 dla odpowiedzi № 3
Usługi lub fabryki w angularJS nie mogą być wstrzykiwane z modułu
angular.module("root",["services"])
powyższe jest błędne
usługi i fabryki są wtryskiwane bezpośrednio do sterownika
angular.module("root",[])
.controller("index",["$scope","service",function ($scope,service){
jeśli problem nie został rozwiązany, proszę wysłać kod usługi / fabryki, może pojawić się więcej pomysłów na problem.