AngularJS 如何使用服务

示例

    angular.module("app")
        
        // 像Angular的内置服务一样注入自定义服务
        .controller("step1Controller", ['counterService', '$scope', function(counterService, $scope) {
            counterService.number++;
            // 绑定到对象(通过引用)而非值,以实现自动同步
            $scope.counter = counterService;
        })

然后,在使用此控制器的模板中编写:

// 可编辑的
<input ng-model="counter.number" />

要么

// 只读
<span ng-bind="counter.number"></span>

当然,在真实代码中,您将使用控制器上的方法与服务进行交互,而控制器又将这些方法委托给服务。上面的示例每次在模板中使用控制器时都会简单地增加计数器值。


Angularjs中的服务是单例的:

服务是单例对象,每个应用程序仅实例化一次(由$injector进行实例化),而延迟加载(仅在必要时创建)。

单例是仅允许创建其自身的一个实例的类,并提供对该实例的简单,便捷的访问。如此处所述