gpt4 book ai didi

javascript - AngularJS - 创建 Controller 和服务的不同方式,为什么?

转载 作者:行者123 更新时间:2023-12-03 13:31:29 25 4
gpt4 key购买 nike

我不断看到在 AngularJS 中创建 Controller 和服务的不同示例,我很困惑,谁能向我解释这两种方法之间的区别?

app.service('reverseService', function() {
this.reverse = function(name) {
return name.split("").reverse().join("");
};
});

app.factory('reverseService', function() {
return {
reverse : function(name) {
return name.split("").reverse().join("");
}
}
});

还有一个 Controller 示例:
function ExampleCtrl($scope) {
$scope.data = "some data";
}

app.controller("ExampleCtrl", function($scope) {
$scope.data = "some data";
}

最佳答案

第一个会污染global namespace ,从长远来看,这不是您想要的。

function ExampleCtrl($scope){
$scope.data = "some data";
}

第二个将 Controller 范围限定为该模块实例。它也使它成为 injectable .更好的是使用数组表示法(如下所示),因为这将在缩小后继续存在。
app.controller("ExampleCtrl", ['$scope', function($scope){
$scope.data = "some data";
}]);

( Angular )服务和工厂之间的差异似乎很小。一个服务包装了一个工厂,它使用 $injector.instantiate初始化服务。

关于javascript - AngularJS - 创建 Controller 和服务的不同方式,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14184656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com