想法是编写一个简单的服务,将2个数字相乘,然后将其传递给控制器并在html页面中显示。但是,我似乎无法显示结果,因为它只显示{{product}}。
以下是代码的所有部分:
function Multiplier(valueFactor) {
this.multiply = function (controllerFactor) {
return valueFactor * controllerFactor;
};
}
var services = angular.module("services",[]);
services.value('factor',6);
services.service('multiplier',['factor', Multiplier]);
var app = angular.module("app",['services']);
app.controller('multiplyController',['$scope','multiplier', function($scope,multiplier) {
$scope.product = multiplier.multiply(2);
}]);
<!DOCTYPE html>
<html ng-app="app">
<head>
</head>
<body>
<div ng-controller="multiplyController">
{{product}}
</div>
<script src="js/angular.js"></script>
<script src="js/angular-route.js"></script>
<script src="js/jquery.min.js"></script>
<script src="app/app.js"></script>
<script src="app/controllers.js"></script>
<script src="app/services.js"></script>
</body>
</html>
答案 0 :(得分:0)
你在这里调用角var app = angular.module("app",['services']);
您应该将app
变量用于其余代码,例如:
app.controller('mycontrl', [function(){/*...*/}])
app.service('mysrvc1', [function(){/*...*/}])
app.service('mysrvc2', [function(){/*...*/}])
app.factory('myfact', [function(){/*...*/}])
您只需安装一次angular.module()
答案 1 :(得分:0)
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script>
var app = angular.module("app",[]);
function Multiplier(valueFactor) {
this.multiply = function (controllerFactor) {
return valueFactor * controllerFactor;
};
}
app.value('factor',6);
app.service('multiplier',['factor', Multiplier]);
app.controller('multiplyController',['$scope','multiplier', function($scope,multiplier) {
$scope.product = multiplier.multiply(2);
}]);
</script>
</head>
<body ng-app="app">
<div ng-controller="multiplyController">
{{product}}
</div>
</body>
</html>