我在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);
});

在这里,我让函数接受参数并对其进行处理,而无需在其中创建新函数。但是这种方法似乎行不通。

最佳答案

服务应该是可实例化的函数,因此Angular会像构造函数那样为您创建服务的实例。如果您只想注册要调用的函数而不构造实例,请使用值:

app.value('hexafy', function(x) {
  return x.toString(16);
});

10-05 20:52