我试图获取服务实例但是收到错误。我得到的例外是Calculator.random()不是函数。知道我做错了吗?
angular
.module('app')
.factory('Calculator',function(){
var random = {};
random.number = function (){
return Math.random();
};
return random;
});
angular
.module('app')
.controller('homeCtrl', ['$scope','Calculator', function ($scope,Calculator) {
$scope.random = Calculator.random();
}]);
答案 0 :(得分:2)
您可以尝试这样:
angular
.module('app').controller('homeCtrl', function($scope, Calculator) {
$scope.random=Calculator.number();//in your factory number holds the random function.
}
在你的情况下,它打破了 原因: Calculator.random(); 不是函数。
答案 1 :(得分:0)
与Cyril一样,您可以在计算器工厂定义中随机定义一个具有本地名称的对象。然后返回该对象,但该对象有一个名为number的属性,该属性指向的函数不是名为random的属性。
angular
.module('app', [])
.factory('Calculator',function(){
var random = {};
random.number = function (){
return Math.random();
};
return random;
});
angular
.module('app')
.controller('homeCtrl', ['$scope','Calculator', function ($scope,Calculator) {
$scope.random = Calculator.number();
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="homeCtrl">{{random}}</div>
</div>
答案 2 :(得分:0)
这应该有效:
UPDATE