我刚开始使用角度js,我开始使用没有服务和工厂的模块的基本声明。在添加服务和工厂之前,它运行良好。现在,在添加服务和工厂之后,它就不再起作用了。
第一个不再有效的声明:
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;
}]);
工厂补充说:
angular.module('root',["services"])
.controller("index",["$scope","square",function ($scope,square){
$scope.product=square;
}]);
服务补充:
angular.module('root',["services"])
.controller("index",["$scope","message",function ($scope,message){
$scope.message=message;
}]);
答案 0 :(得分:0)
您正在重新声明模块“root”而不是添加新模块“services”,因为您再次向依赖项添加了“服务”。您不必在新模块中重新声明“root”,因为它应该是独立且可移植的。查看模块文档: https://docs.angularjs.org/guide/module
您的'服务'模块应该声明如下:
angular.module('services'])
.controller("index",["$scope","message",function ($scope,message){
$scope.message=message;
}]);
答案 1 :(得分:0)
您缺少angular.module函数的重要部分。
该函数充当getter和setter,具体取决于提供的参数。
angular.module('module name', [...])
其中[...]是依赖项数组,是一个“setter”,因此它将创建一个模块。
现在,在创建它之后,为了获取模块并在其上添加控制器,服务等,省略了依赖项数组。
angular.module('module name')
此外,您必须在services
模块之前定义root
模块。
// 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...
}]);
答案 2 :(得分:0)
angularJS中的服务或工厂不能从模块中注入
angular.module('root',["services"])
上面的错误
服务和工厂直接注入控制器
angular.module('root',[])
.controller("index",["$scope","service",function ($scope,service){
如果您的问题没有解决,请发布服务/工厂代码,可能会对问题有所了解。