189 8069 5689

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去掉

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站栏目:angular1.x开发笔记-创新互联
文章路径:http://jkwzsj.com/article/jdhpg.html

其他资讯