您好,登錄后才能下訂單哦!
對于彈出層要使用獨立地址比較復雜,比如說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"]; <select?ng-options="item.item?as?item.title?for?item?in?tags?track?by?item.id"?name="multipleSelect"?id="multipleSelect"?ng-model="selected"?multiple> </select>
這樣是不會顯示選中的,需要把track by去掉
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。