我开始在w3schools教程中学习angularjs。下面是编写自定义服务的示例
app.service('hexafy', function() {
this.myFunc = function (x) {
return x.toString(16);
}
});
app.controller('myCtrl', function($scope, hexafy) {
$scope.hex = hexafy.myFunc(255);
});
为什么以下不起作用 -
app.service('hexafy', function(x) {
return x.toString(16);
});
app.controller('myCtrl', function($scope, hexafy) {
$scope.hex = hexafy(255);
});
这里我让函数接受一个参数并处理它而不在其中创建一个新函数。但这种方法似乎不起作用。
答案 0 :(得分:4)
服务应该是可实例化的函数,因此Angular会为您创建服务实例,就像构造函数一样。如果您只想注册要调用的函数而不构造实例使用值:
app.value('hexafy', function(x) {
return x.toString(16);
});
答案 1 :(得分:1)
您需要一个方法是访问服务类的值,最好保留一个方法以满足您的需求,我相信以下是您需要的代码。
app.service('hexafy', function() {
this.toString = function(x){
return x.toString(16);
}
});
app.controller('myCtrl', function($scope, hexafy) {
$scope.hex = hexafy.toString(255);
});
或者您可以像上面的答案那样访问它。