2017-04-09 3 views
-2

どのコンストラクタータイプの関数もAngularで探しています。私はサービスを作りましたが、それは私にエラーを与えています。課題を達成するためにお手伝いください。サービスまたは工場用の角度Jsコントラクター関数

マイエラーコード:

var app = angular.module("app1", []) 

.service('NumberService', function (a) { 
    this.square = function() { return a * a; }; 
    this.cube = function() { return a * a * a; }; 
}) 

.controller('ServiceController', ['$scope', 'NumberService', 
    function ($scope, NumberService) { 
     $scope.getData = function() { 
      // alert('Button clicked'); 
      var n = $scope.a; 
      var ns = new NumberService(n); 
      $scope.Square = ns.square(); 
      // alert($scope.Square); 
      $scope.Cube = ns.cube(); 
     } 
    } 
]); 

私はシングルトンクラスとしてNumberServiceを作成したいです。 。サービス()で何かを作成すると、シングルトンになります。C++/java/c#:

class NumberService 
{ 
    int a; 
    public NumberService(int n){ a=n;} 
    public int square(){ return a*a;} 
    public in cube(){ return a*a*a;} 
} 
+1

*「それはエラーを出しています」* ...なぜそのエラーが何か分からないのですか? [ask] – charlietfl

+0

を参照してください。http://stackoverflow.com/questions/13762228/confused-about-service-vs-factory?rq=1 – SinDeus

答えて

0

あなたは本当にはずの:

var ns = new NumberService(n); 

それはすでにシングルトンインスタンスにポイントをNumberService原因。だから行います

NumberService.square(2) 

は、なぜあなたはそれががシングルトンになりたいん、あなたの数学の操作は、クリアリーユーティリティメソッドは、状態の必要は、ありませんか?

+0

クラス名がインスタンス名ではない –

+0

のメソッド名にアクセスすると、静的クラスになります。これは今、.service()でインスタンス化されたい場合は、.factory()を見ることをお勧めします。あなたはシングルトンやインスタンスを望みますか?あなたが必要としているものなら、.factory +インスタンスソリューションを使って答えを修正するのは楽しいですか? –

関連する問題