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进行实例化),而延迟加载(仅在必要时创建)。
单例是仅允许创建其自身的一个实例的类,并提供对该实例的简单,便捷的访问。如此处所述