发表于: 2017-05-31 23:11:31

4 1049


昨天做了啥/收获:


看了半天的接口文档结果早上后台给我说不要看了 很多东西都要重写。

其实蛮开心因为我觉得这就是完全的工作模拟家家酒游戏。


*部分来自网络,权删!


抽出不属于controller的工作到Service中,在controller中通过依赖注入来使用service。

不要操作dom.angular为了自动操作dom 用数据绑定。

执行自定义DOM操作,可以把表现逻辑抽取到directive(自定义指令)中。

执行无状态或有状态的。controller共享的代码。就用services代替。

实例化或管理其他组件的生命周期。(比如创建一个服务实例)

复用controller,一个控制器一半只负责一小块试图。

controller不相互调用。控制器之间的交互通过事件进行

ng-init用来初始化数据,ng-repeat用来遍历,对于ng-repeat来说,$index表示当前的索引,$first判断是否为头元素,$last判断是否为尾元素,$middle判断是否为非头非尾元素。


在循环中批量添加DOM元素的时候,会推荐使用DocumentFragment,为什么呢,因为如果每次都对DOM产生变更,它都要修改DOM树的结构,性能影响大,如果我们能先在文档碎片中把DOM结构创建好,然后整体添加到主文档中,这个DOM树的变更就会一次完成,性能会提高很多。


ng-src和ng-href都跟ng-bind的功能差不多,等到angular完全加载完之后,再去加载相应的资源,提升用户体验。


脏检查机制:它并不是周期性的!!!而是透过某些事件才能触发脏检查。


代码中,在执行apply函数之前会首先检查Angular内部是不是正在做“脏检查”,如果是就直接执行函数,不用$apply;反之没有启动脏检查,那么就$apply执行该函数。 $timeout有很多妙用,但一定不要滥用,$timeout实现apply功能不应该是我们的第一方案,第一方案仍然应该是使用Angular内置的指令。


myModule.directive("myclick", function() {

    return function (scope, element, attr) {

        element.on("click", function() {

            scope.counter++;

            scope.$apply(function() {

                scope.counter++;

            });

        });

    };

});

myModule.controller("CounterCtrl", function($scope) {

    $scope.counter = 0;

});


$http与$resource

一.使用$http$http服务是只能接受一个参数的函数,这个参数是一个对象,包含了用来生成HTTP请求的配置内容。这个函数返回一个promise对象,具有success和error两个方法。例如代码:

$http({

method:"GET",

url:'/xx/xx'

}).success(function(data,status,headers,config){

//当相应准备就绪时调用

}).error(function(data,status,headers,config){

//当响应错误状态返回时调用

})

这个方法实际上返回了一个promise对象。当promise返回的时候,我们可以将$http方法的运行结果当作变量返回。例如:

var promise = $http({

method = 'GET',

url:'/xx/xx'

});

由于$http方法返回一个promise对象,我们可以在响应返回的时候用then方法来处理回调。如果使用then方法,可以得到一个特殊的参数,它代表了相应对象的成功或者失败信息,还可以接受两个可选的函数作为参数。或者使用success和error进行回调代替。

promise.then(function(resp){

//resp是一个响应对象

},function(resp){

//带有错误信息的resp

});

或者使用success/error方法:

promise.success(function(data,status,headers,config){

//处理成功的响应

});

promise.error(function(data,status,headers,config){

//处理非成功的响应

})

$resource服务可以将$http请求转换成save和update等简单形式。我们可以通过$resource服务来处理复杂的细节,而无需自己写重复和繁琐的的业务代码。

用法:

1.加入angular-resource.js文件。

2.将ngResource当作依赖来进行引用:

angular.module('myApp',['ngResource']);

这样就可以使用ngResource服务。

$resource基于HTTP GET方法

两个HTTP GET类型的方法可以接受3个参数:params,successFn(响应成功时的回调函数),errorFn(响应不成功时的回调函数)



明天做啥:继续写DOME。


问题:不是很明白脏检查的必要性,以及$Http,$resource的核心区别;

一个小知识点往往会引出一大堆的知识点,- =真是学无止境啊 同理如图:





唉 心累!!!



返回列表 返回列表
评论

    分享到