AngularJS应用中:
view是专门用于数据的接收和展示
controller是用来表示控制范围($scope)及数据的挂载的【数据从哪里来】
自定义服务即是用于从后端接口获取数据,然后挂载到控制器中,用来进行不同的独立控制器之间的数据传递、共享。
AngularJS中有两种服务:内置服务及自定义服务。
本文重点讲述三种自定义服务。
1、factory工厂模式实现:比较常用,根据项目组规范确定是否使用。
var app = angular.module("myApp",[])
.controller("myCtr",["$scope","service",function($scope,service){
$scope.value = service;
}])
//这里使用显示注入避免压缩出现问题,相关入口及控制器名字,相信大家很轻松就能看明白
app.factory("service",function(){
//这里我们模拟从后台获取数据
var v = "factory value";
//返回数据:数据类型可以是字符串、对象。
return v;
})
//2.service对象方式,比较常用,根据项目组规范确定是否使用;
app.service("service",function(){
//从后端获取数据(这里只进行模拟)
var v = "service value";
//这里只能返回JSON(轻量级的数据交换格式)对象
return {v : v}
})
//因service只能返回规范的JSON对象流行于自定义服务中,因为有些项目中只有返回JSON才能正常解析,使用service避免出现大量的各种格式的数据。
//3.provider 代理方式,angular开发项目中很少使用。
app.provider("service",function(){
this.$get = function(){
return "provider value"
}
})
//第一个参数服务名称是可以自定义的
然后在控制器中利用 $scope.value = "服务名称" 你需要的地方使用ng-bind="value" 就可以在页面进行显示了