app.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | var app = angular.module('A05', []); app.factory('CalculatorFactory', function() { var currency = 'US$'; function resultWithCurrency(value) { return currency + ' ' + value; } return { name: 'Calculator Factory', calculate: function(value) { return resultWithCurrency(value * value); } } }); app.controller('FactoryController', function($scope, CalculatorFactory) { $scope.name = CalculatorFactory.name; $scope.calculate = function() { console.log(CalculatorFactory.calculate(10)); } }); |
คราวที่แล้วเราเขียน function เดียวกันแต่ใช้ผ่าน service ซึ่งไม่มีการ return อะไร แต่ว่าผูกค่าหรือ function ไว้กับ this แต่ถ้าเป็น factory จะมีการ return ค่า
file.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <!DOCTYPE html> <html ng-app="A05"> <head> <title>05</title> <script src="js/angular.min.js" type="text/javascript" charset="utf-8" ></script> <script src="app/05/app.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div ng-controller="ConstantController"> <p><b>Constant</b>: {{ viewPath }}</p> </div> <hr> <div ng-controller="FactoryController"> <p><b>Factory</b>: {{ name }}</p> <p><button ng-click="calculate()">{{ name }}</button></p> </div> </body> </html> |
แต่ตอนที่เรียกใช้ ไม่ว่าจะเป็น service หรือ controller จะเรียกไม่ต่างกัน
จบ.
Reference:
AngularJS: Service vs provider vs factory
No comments:
Post a Comment