angularjs 服务(service)

什么是angularjs服务?
angularjs服务其实就是一个函数或是一个对象,我们可以在angularjs的应用中使用.
例如:
$timeout服务或是$interval服务
$timeout服务相当于javascript中的setTimeout函数,在设定的时间里执行我们编写好的代码.而$interval相当于javascript中的setInterval,每相隔指定时间重复执行我们所写好的代码.
例如:
{{myInfo}}
上例中执行的结果是在1秒前显示的是zhang,但是当一秒后程序执行的是$timeout中的函数,也就是"你好zhang!",所以$timeout服务就是javascript中的setTimeout,在设定的时间里执行我们编写好的$scope.myInfo = "你好" + $scope.myInfo + "!";这段代码,但是注意它是只执行一次,不会像$interval那样会在指定的时间内重复执行某一操作.
$interval服务
{{newTime}}
运行上面代码,初始化是当前的时间,每个一秒更新一次,这样就能追踪当前本地的时间,并显示, toLocaleTimeString()是javascript中的方法,可以根据本地时间把Date对象的时间部分转换为字符串,并返回结果.
在angularjs中服务远不止这两种,在angularjs中还有很多其他的内置服务,我们可以查阅手册.
创建自定义服务
创建自定义服务,就是我们不使用angularjs中的内置服务,而是自己创建服务,然后链接到我们的模块中.
例如:
{{myService}}
运行上面的代码结果为f4,我们现在来将上面实例中的代码解剖一下,其实想要创建自定义服务,我们是需要用到service()这个方法,在这个实例中它的第一个参数是创建服务的名称,第二个参数为我们创建的这个参数能够执行什么样的行为,这也就决定了,当我们调用这个自己创建的服务时,它能执行什么样的动作,其中this.myFun()又是什么含义?其实如果我们将上面的代码拆开来写,就会更清晰.
function(){
this.myFunc = function(x){
     return // 返回的结果
   }
}
如果把它单独拿出来是不是就更清晰了呢!?是的这个其实就是构造函数中的一种写法,如果你想了解更多关于构造函数的内容可以查阅 javascript面向对象——constructor属性(构造函数属性)
里面有详细讲解,当我们创建好自定义的服务时,在 app.controller("myCtrl",["$scope","serviceName",myCtrl]);就能够调用.其实this指向的还是直接调用它的对像。
如有理解不当之处,欢迎各位老铁留言指正。谢谢!!!!

你可能感兴趣的:(AngularJS学习笔记)