文章目录
-
- 代码
- 效果图
代码
<!DOCTYPE html> <html lang="en" ng-app="app"> <head> <meta charset="UTF-8"> <title>service服务</title> <style> *{margin: 0;padding: 0;} main{margin:100px auto;width:300px;background-color:#ccc;color:white;text-align:center;padding:30px;} </style> </head> <body> <main ng-controller="MainCtrl as mainCtrl"> <h3 >{{mainCtrl.get()}}</h3> <input type="search" placeholder="请输入姓名" ng-model="mainCtrl.nickname"> <button ng-click="mainCtrl.set();" >改名</button> </main> <script type="text/javascript" src="js/lib/angular/angular.min.js"></script> <script type="text/javascript"> //Angular中使用service函数可以定义一个服务,本质就是一个普通函数, //这个函数是一个类,在使用的时候会被系统自动的实例化1次,必须直接用类名打点调用里面的方法。 //服务是惰性的:只有当依赖这个服务的控制器被实例化的时候,服务才会被实例化。 //服务是单例的:不管页面上有多少个控制器使用这个服务,服务的实例永远只有一次。 var app = angular.module("app",[]); app.controller("MainCtrl",["NameService",function(NameService){ this.set = function(){ NameService.setName(this.nickname); } this.get = function(){ return NameService.getName(); } }]); //创建一个服务,和创建controller一样 app.service("NameService",[function(){ var nickname="冷月心";//局部变量的方式也可以,this.name方式的也可以,注意要上下文匹配 this.setName = function(name){ nickname = name; } this.getName = function(){ return nickname; } }]) </script> </body> </html>
效果图