angular1.x开发笔记

对于弹出层要使用独立地址比较复杂,比如说login是一个弹出层,但是又给它配了/login的地址,这种处理起来有些复杂

创新互联是一家集网站建设,淮北企业网站建设,淮北品牌网站建设,网站定制,淮北网站建设报价,网络营销,网络优化,淮北网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

定义一个监听location改变的类,然后每次到了弹出层的地址就根据地址显示弹出层

services.service('LocationChanger', ['$location', '$route', '$rootScope',    
    function ($location, $route, $rootScope) {    
        this.rootScopeEvent=null;    
        //阻止ngView的刷新,返回this是方便链式调用    
        this.skipReload = function () {    
            var lastRoute = $route.current;    
            var me=this;    
            //这里绑定过后面会一直响应,关闭弹出层的时候要取消绑定,绑定的时候会返回取消绑定的函数    
            me.rootScopeEvent=$rootScope.$on('$locationChangeSuccess', function () {    
                $route.current = lastRoute;    
                //相应过后,立即取消绑定的事件    
                me.rootScopeEvent();    
            });    
            return me;    
        };    
        this.cancelReload=function(){    
            //取消$rootScope.$on('$locationChangeSuccess'的绑定    
            if(typeof this.rootScopeEvent ==="function"){    
                this.rootScopeEvent();    
            }    
            return this;    
        };    
        this.withReplace = function (url, doesReplace) {    
            if(doesReplace){    
                $location.path(url).replace();    
            }    
            else {    
                $location.path(url || '/');    
            }    
            return this;    
        };    
}]);    
LocationChanger.skipReload().withReplace();

ng-view只能有一个,用其插件ui-rotuer可以实现多个view

https://github.com/ui-router/angular

由于其内部采用全监听模式,每次改动一个model会更新所有的model,当model达到一定数量后,性能上有些吃力,有一些优化的建议

https://blog.51cto.com/13934921/2163063

对animate支持不友好,没有完善的回调模式,animate的性能也不尽人意,有时候需要人为的逻辑控制

在resource中默认会去掉结尾的“/”,使用下面这句代码加上对结尾“/”的支持

$resourceProvider.defaults.stripTrailingSlashes = false;

$http.post 和 $resource action post的区别

$http.post 使用 $http.post(url, postData, [config]);

params是在config中设置,例如$http.post("#",{"a":1},{params:{}});

resource action post中是

Resource.action([parameters], postData, [success], [error])

这个parameters是显示申明的,但是是可选参数,也就是说如果url中没有参数,是可以不带这个参数的,在action的定义的时候都可以不指定params属性

但是如果有params,这里有两种方式使用,一种params中的数据在postData中没有,那么使用的时候就要显示的带parameters这个参数,如果是postData中有,那么可以不带,直接用postData中的,只是params的定义的时候需要将值通过@符号进行映射

xxxx: {
    method: "post", url: xxxx
}
xxxx: {
    method: "post", url: xxxx,
    params: {formId: ""}
}
xxxx({formId:xxxxx}, formData).then(); //formData中没有formId这个参数
xxxx: {
    method: "post", url: xxxx,
    params: {formId: "@formId"}
}
xxxx(formData).then(); //formData有formId这个参数

select 对象 multiple的时候,使用track by会导致不能返现

$scope.tags = [{id:"xxx",title:"xxx"},{id:"ddd",title:"ddd"}];
$scope.selected = ["xxx"];

这样是不会显示选中的,需要把track by去掉


当前名称:angular1.x开发笔记
路径分享:http://scyanting.com/article/gghceh.html