Nei*_*eil 18 javascript angularjs
我一直看到在AngularJS中创建控制器和服务的不同例子,我很困惑,有人可以向我解释这两种方法之间的差异吗?
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("");
}
}
});
Run Code Online (Sandbox Code Playgroud)
还有一个控制器示例:
function ExampleCtrl($scope) {
$scope.data = "some data";
}
app.controller("ExampleCtrl", function($scope) {
$scope.data = "some data";
}
Run Code Online (Sandbox Code Playgroud)
asg*_*oth 20
第一个会污染全局命名空间,从长远来看,这不是你想要的.
function ExampleCtrl($scope){
$scope.data = "some data";
}
Run Code Online (Sandbox Code Playgroud)
第二个将Controller范围限定为该模块实例.它使它也可注射.更好的是使用数组符号(如下所示),因为这将在缩小时存活.
app.controller("ExampleCtrl", ['$scope', function($scope){
$scope.data = "some data";
}]);
Run Code Online (Sandbox Code Playgroud)
(角度)服务和工厂之间的差异似乎很小.服务包装工厂,工厂使用$ injector.instantiate初始化服务.
| 归档时间: |
|
| 查看次数: |
9178 次 |
| 最近记录: |