zoukankan      html  css  js  c++  java
  • angularJS 服务-$provide里factory、service方法

    当你初试 Angular 时,很自然地就会往 controller 和 scope 里堆满不必要的逻辑。一定要早点意识到,controller 这一层应该很薄;也就是说,应用里大部分的业务逻辑和持久化数据都应该放在 service 里。我每天都会在 Stack Overflow 上看到几个同类的问题,关于如何在 controller 里保存持久化数据。这就不是 controller 该干的事。出于内存性能的考虑,controller 只在需要的时候才会初始化,一旦不需要就会被抛弃。因此,每次当你切换或刷新页面的时候,Angular 会清空当前的 controller。与此同时,service 可以用来永久保存应用的数据,并且这些数据可以在不同的 controller 之间使用。

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

    a:factory,b:service, c:provide

    1) 用 Factory 就是创建一个对象(var service),为它添加属性(service.getlist),然后把这个对象返回出来。你把 service 传进 controller 之后,在 controller 里这个对象里的属性就可以通过 factory 使用了。

    myApp.factory("indexfactory",function($http){
    	var _artist = ""
        var service = {} 
    	service.getlist = function(){
    	  return _artist;
    	 }	
    	service.newlist = function(callback){
    		$http.jsonp("http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=1&size=10&offset=0&callback=JSON_CALLBACK").success(function(result){      
             callback(result);
          })
    	} 
      return service;
    })
    

    2) Service 是用"new"关键字实例化的。因此,你应该给"this"添加属性,然后 service 返回"this"。你把 service 传进 controller 之后,在controller里 "this" 上的属性就可以通过 service 来使用了。

    myApp.service('indexsever', function($http){
    	var self = this;
    		self.newsjh2=function(callback){
    	  	$http.jsonp("http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=1&size=10&offset=0&callback=JSON_CALLBACK").success(function(result){      
    	      callback(result);
    	   })
      	 } 
    })
    myApp.controller('firstController',function($scope,$interval,indexsever,indexfactory){
     
       indexsever.newsjh2(function(result){
    console.log(result) }) indexfactory.newlist(function(result){ console.log(result); }); })

     上述达到效果是一样,看自己喜欢用那种,那种效率高还不知晓,有大神指点请告知下 

  • 相关阅读:
    JAVA 面向对象的扩展 内部类
    对于win10 更换JDK后 查询JDK路径还是原路径的解决办法
    懂得的懂
    稀疏数组转化二维数组
    Flume的安装配置
    CentOS7配置ip和ssh免密登录和hadoop环境
    AOP的使用和事务
    spring的个人理解
    单车月结算2-修改和删除功能
    单车月结算1
  • 原文地址:https://www.cnblogs.com/xqschool/p/6237475.html
Copyright © 2011-2022 走看看