zoukankan      html  css  js  c++  java
  • AngularJS笔记---注册服务

          在前面的笔记中,了解到AngularJS的后台控制可以在Controller里面实现. 可是如果所有的逻辑代码都写到Controller会显得该Controller过于臃肿. 不方便维护, AngularJS提供了一个可以依赖注入的方法。我们可以将逻辑处理封装到Service中,需要调用只需要引入对应的Service即可.

         Angular 提供了3种方法来创建并注册我们自己的 service.

         1.Factory

         2.Service

         3.Provider

         一. Factory:

    1. 下面构建了一个MyFactory, 用于设置个人信息,并展示个人信息。

    Note: 1. 必须在里面调用return 否则会报错

             2. 所有的可访问的方法都放到了Service里面

    app.factory('MyFactory',function(){
    
           var service = {};
           var _name = '';
           var _age = '';
    
           service.SetInfo = function(name,age){
                 _name = name;
                 _age = age;
           }
    
           service.ShowInfo = function(){
                 return _name+':'+_age;
           }
    
           return service;
      });

                2. 可以将通过function(MyFactory)中将服务注册到Controller中. 控制台就会打印出Frank:23

      var app = angular.module('myapp')
      app.controller('InjectCtrl',function ($scope,MyFactory) {
           MyFactory.SetInfo('Frank',23);
           console.log(MyFactory.ShowInfo());
      });    

           二. Service

                1. Service与Factory用法差不多,区别在于不需要Return一个对象.           

     var app = angular.module('myapp')
    
      app.controller('InjectCtrl',function ($scope,MyService) {
           MyService.SetInfo('Frank',23);
           console.log(MyService.ShowInfo())
      });
    
    app.service('MyService', function(){
           var _name = '';
           var _age = '';
    
           this.SetInfo = function(name,age){
                  _name = name;
                  _age = age;
           }
    
           this.ShowInfo = function(){
                  return _name+':'+_age;
           }
      });

            三. Provider:

                1. Provider: 通过#Get方法实现数据的返回.              

      app.provider('MyProvider',function(){
    
             var service = {};
           var _name = '';
           var _age = '';
    
           service.SetInfo = function(name,age){
                 _name = name;
                 _age = age;
           }
    
           service.ShowInfo = function(){
                 return _name+':'+_age;
           }
    
           this.$get = function(){
                 return service;
           }
       });

               

                

  • 相关阅读:
    Docker windows下安装,入门及注意事项,并搭建包含Nodejs的webapp
    360浏览器table中的td为空时td边框不显示的解决方法
    关于发布webservice提示The test form is only available for requests from the local machine
    CRM相关SQl手记
    页面右下角弹出的消息提示框
    MS CRM2011 js常用总结
    MVC razor 使用服务器控件
    常用正则表达式
    CRM 2011 常用对象
    人工智能AI-机器视觉CV-数据挖掘DM-机器学习ML-神经网络-[资料集合贴]
  • 原文地址:https://www.cnblogs.com/FourLeafCloverZc/p/4578863.html
Copyright © 2011-2022 走看看