1
私はangularjs
を学んでおり、サービスと工場で記事を読んでいます。このARTICLEに提供される1つの例は、Service Fiddleです。既存のサービスの角度で工場を作る方法
私はこのサービスを工場に変換しようとしていますが、これはMy Factory Fiddleへのリンクです。しかし、まだそれは期待どおりに働いていない私は間違ってやっているか分からない。
HTML
<div ng-app="app">
<div ng-controller="CalculatorController">
Enter a number:
<input type="number" ng-model="number" />
<button ng-click="doSquare()">X<sup>2</sup></button>
<button ng-click="doCube()">X<sup>3</sup></button>
<div>Answer: {{answer}}</div>
</div>
</div>
JS
var app = angular.module('app', []);
app.factory('MathService', function() {
var myFactory = {};
myFactory.add = function(a, b) { return a + b };
myFactory.subtract = function(a, b) { return a - b };
myFactory.multiply = function(a, b) { return a * b };
myFactory.divide = function(a, b) { return a/b };
retutn myFactory;
});
app.factory('CalculatorService', function(MathService){
var calcFactory = {};
calcFactory.square = function(a) { return MathService.multiply(a,a); };
calcFactory.cube = function(a) { return MathService.myFactory.multiply(a, MathService.myFactory.multiply(a,a)); };
return calcFactory;
});
app.controller('CalculatorController', function($scope, CalculatorService) {
$scope.doSquare = function() {
$scope.answer = CalculatorService.calcFactory.square($scope.number);
}
$scope.doCube = function() {
$scope.answer = CalculatorService.calcFactory.cube($scope.number);
}
});