为什么我们需要在这个计划中使用服务和工厂?

时间:2016-03-18 10:41:23

标签: angularjs

这是使用服务和工厂在angularjs.here中查找数字的平方的程序。为什么我们在这里使用或者为什么我们需要在这个程序中使用服务和工厂?

var mainApp = angular.module("mainApp", []);

    mainApp.factory('MathService', function() {
        var factory = {}; 
        factory.multiply = function(a, b) {
             return a * b
        }
        return factory;
    });

    mainApp.service('CalcService', function(MathService){
        this.square = function(a) {
            return MathService.multiply(a,a);
         }
   });

     mainApp.controller('CalcController', function($scope, CalcService) {
           $scope.square = function() {
                $scope.result = CalcService.square($scope.number);
           }

1 个答案:

答案 0 :(得分:0)

希望这个解释有帮助

首先,我会说他们几乎相同。那么为什么我们两个都有?那是Angular神知道的。它们都允许我们创建一个对象,然后可以在我们的应用程序中的任何地方使用。

最重要的是要意识到两者都是你应用中的单身人士,即使名称“工厂”可能意味着不同。

本质上,工厂是返回对象的函数,而服务是使用new关键字实例化的对象的构造函数。

angular.module('app').controller('TheCtrl', function($scope, SomeService) {
SomeService.someFunction();
});
Here is a matching factory:

angular.module('app').factory('SomeService', function() {
return {
  someFunction: function() {}
      };
});

价:http://www.codelord.net/2015/04/28/angularjs-whats-the-difference-between-factory-and-service/