zoukankan      html  css  js  c++  java
  • angular 服务

    在Angular里面,services作为单例对象在需要到的时候被创建,只有在应用生命周期结束的时候(关闭浏览器)才会被清除。而controllers在不需要的时候就会被销毁了。服务用于在控制器之间进行共享,用的时候只要把服务注入到控制器就可以了。

    provider(name,object)

    provider(name,constroctor)

    factory(name,$getFunction)

    service(name,constroctor())

    例子:

    用factory创建服务

    在service里面当我们仅仅需要的是一个方法和数据的集合且不需要处理复杂的逻辑的时候,factory()是一个非常不错的选择

    <script src="angular.min.js"></script>
    <!-- <script src="a.js"></script> -->
    <!-- <script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script> -->
    </head>
    <body ng-app="app" ng-controller="myController">
    </body>
    </html>

    <script>
    var app=angular.module('app',[]).factory('Items',function(){
      var items={};
      items.query=function(){
       return [
        {name:"YY",age:20}
       ];
      };
      return items;
    })
    app.controller('myController',['$scope', 'Items',function($scope, Items){
        $scope.items=Items.query();
        console.log($scope.items)
    }]);
    </script>

    provider创建服务-$get是必须的

    app.provider('age',function($filterProvider){
        this.age=10;
        this.$get=function(){
            return this.age;
        }
    });

    或者

    app.provider('age2',{
        age:12,
        $get:function(){
            return this.age+2;
        }
    });

    其他服务

    app.service("date",Date);//得到一个已有对象的实例

    仅仅定义一个$get,而且就一个常量的时候可以用value和constant,constant可以注入到config ,value不可以

    app.value('pageCount',7);//直接返回一个常量

    app.constant('pageCount',7);//直接返回一个常量

    service和value都可以直接返回一个常量

    app.service("ser",function(){
        this.name="YY";
        this.age=20
    })

    service不需要显示的返回对象,factory需要显示的返回对象 只有provider创建的服务可以注入到config里面

  • 相关阅读:
    [LeetCode]题解(python):094-Binary Tree Inorder Traversal
    [LeetCode]题解(python):093-Restore IP Addresses
    [LeetCode]题解(python):092-Reverse Linked List II
    [LeetCode]题解(python):091-Decode Ways
    第二阶段团队冲刺1
    进度总结报告十三
    梦断代码阅读笔记02
    第一阶段对各组的意见评价
    进度总结报告十二
    软件开发冲刺10
  • 原文地址:https://www.cnblogs.com/youzhuxiaoyao/p/4936876.html
Copyright © 2011-2022 走看看