2016-07-15 6 views
1

は、私は次のコードで、角のモジュールを持っている:コントローラから角度サービスを呼び出すにはどうすればよいですか?

angular.module('sampleModule', []) 

.service('myService', [function() { 
    this.showAlert = function() { 
     alert("Hello"); 
    }; 

    this.sum = function (a, b) { 
     return a + b; 
    }; 
}]) 

.controller('SampleCtrl', ['myService', '$scope', function ($scope, myService) { 
    this.doSum = function() { 
     var result = myService.sum(1, 2); 
     alert(result); 
    }; 
}]); 

私はdoSumを起動すると、私が得る:

はTypeError:myService.sum機能が

任意のアイデアではないでしょうか?ありがとう!

答えて

3

お使いのコントローラDIは、引数の順序に注意wrong-です:注射のシーケンシングと

.controller('SampleCtrl', ['$scope', 'myService', function ($scope, myService) { 
    this.doSum = function() { 
     var result = myService.sum(1, 2); 
     alert(result); 
    }; 
}]); 
+0

'myService'は '$ scope'に依存するので、myServiceは必要な$ scopeの後に来なければならないため、注文が問題と思われます。これは正しいです? –

+0

はい、正しいです! –

+1

あなたは絶対に正しいです!ありがとう! – OtoLeo

1

問題は適切ではありません。 $ scopeはmyServiceの前に来るべきです。

関連する問題