博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AngularJS学习日记(四)Service和Provider
阅读量:5968 次
发布时间:2019-06-19

本文共 2259 字,大约阅读时间需要 7 分钟。

http 服务     创建自己的Service     Service的特性     Service Factory,Providerfilter 内置的Service

自己的Service:

    
Service
{
{users}}
复制代码
angular.module('MyModule',[])    .factory('userListService',['$http',        function ($http) {            var doRequest = function (username, path) {                return $http({                    method:'GET',                    url:'user.json'                });            }            return{                userList:function (username) {                    return doRequest(username,'userList');                }            }        }    ])    .controller('ServiceController',['$scope','$timeout','userListService',        function ($scope,$timeout,userListService) {            var timeout;            $scope.$watch('username',function (newUserName) {                if(newUserName){                    if(timeout){                        $timeout.cancel(timeout);                    }                    timeout = $timeout(function () {                        userListService.userList(newUserName)                            .success(function (data,status) {                                $scope.users = data;                            })                    },350)                }            })        }    ])复制代码

这里的factory 可以返回一个带有属性和方法的对象。

Service的特性: Service都是单例。 Service由$$injector负责实例化,就是说不用去new一个service。 Service在整个应用的生命周期中存在你,可以用来共享数据。 在需要使用的地方利用依赖机制注入Service。 自定义的Service需要写在内置的Service后面。 内置Service的命名以$符号开头,自定义Service应该避免。

Service,Provider,Factory: Service,Provider,Factory本质上都是Provider。 Provider模式是‘策略模式’+‘抽象工厂模式’的混合体。

filter: $filter是用来进行数据格式化的专用服务 AngularJS内置了9个filter: currency,date,json,limitTo,lowercase,number,orderBy,uppercase filter可以嵌套使用(用管道符号|分割) filter是可以传递参数的 用户可以定义自己的filter

常用的date filter:

    
Date {
{ 1304375948024| date }}
{
{ 1304375948024| date:"MM/dd/yyyy @h:mma" }}
{
{ 1304375948024| date:"yyyy-MM-dd hh:mm:ss"}}复制代码

自定义一个filter:

    
Filter {
{
'东方海外'|filter1}}复制代码
angular.module('MyModule',[])    .filter('filter1',function () {        return function (item) {            return item+'OvO';        }    })复制代码

其他常用的Service: $compile filter interval 间歇性处理一些事情, locale 国际化 timeout location 观测地址栏的一些变化 log parse http 封装了Ajax

转载地址:http://bihax.baihongyu.com/

你可能感兴趣的文章
个人博客 SEO 优化(2):站内优化
查看>>
从源码全面剖析 React 组件更新机制
查看>>
十个你需要在 PHP 7 中避免的坑
查看>>
spring-MVC源码解读(一)
查看>>
[译]php和curl_multi_exec
查看>>
java对象关系映射ROM
查看>>
Hystrix指标窗口实现原理
查看>>
【419天】跃迁之路——程序员高效学习方法论探索系列(实验阶段176-2018.03.31)...
查看>>
LeetCode 200. Number of Islands
查看>>
做一个合格的前端,gulp资源大集合
查看>>
常用符号的英文名
查看>>
Laravel - Artisan 个人常用总结
查看>>
重温一遍数据结构之单链表(golang版)
查看>>
使用git修复线上指定版本的问题
查看>>
【Node核心模块HTTP】
查看>>
CSS > 关于雪碧图预处理和后处理方案的讨论
查看>>
从 JavaScript 到 TypeScript 5 - 路由进化
查看>>
微信小程序实践_1前言
查看>>
我开发中总结的小技巧
查看>>
angular模块库开发实例
查看>>