作為乙個coder,應該具有經常總結反思的習慣,如果不能及時總結,可能就會忘記自己踩過的很多坑,然後會導致同乙個坑踩很多次,所以我打算把這些都記錄下來,以方便是對自己的重複記憶,避免無效的coding,另一方面可以希望可以給遇到相似問題的同僚們一些收穫.
在開發過程中,我們可能經常會通過js來手動更改繫結的相關資料,而不是通過dom操作來改變繫結的相關資料,這樣也很多情況下會導致繫結資料的檢視不能夠及時更新,這個時候就需要我們手動觸發一下髒檢查,下面我就介紹一下三種手動觸發髒檢查的方法.
找到一種更完美的解決動態新增資料導致頁面不能及時渲染的方法,迫不及待地來分享給大家~~~
var phase = this.$root.$$phase;
if(fn && (typeof(fn) === 'function')) else
}}這個指令在表單校驗的時候非常有用,我們可以設定什麼時候出發試圖更新,這樣你就可以設定dom元素失去焦點改變後呼叫監聽,從而顯示校驗的提示. , , ,這些元素支援該指令
//使用示例
//可配置引數
規則指定事件發生後繫結資料
規定等待多少毫秒後繫結資料
規定是否需要驗證後繫結資料
規定是否作為 getters/setters 繫結到模型
規則是否使用時區
我們都知道,當頁面還未載入完畢的時候會出現}這種尷尬的情況,通過使用ng-bind-template指令,就可以避免尷尬情況的出現.
//使用示例
(1) 將html片段抽出,通過指令引入ng-include,ng-bind-html
(2) 通過ng-cloak指令
(1)路由傳參
//傳遞
$state.go(path, )
ui-sref="path()"
//獲取
$scope.$stateparams.name
(2)通過廣播
通過子元素傳遞給父元素,然後父元素再廣播給其他子元素,注意這個廣播是很快就完成的,所以很有可能出現子頁面還未載入完父元素的廣播就已經完成了,為了避免這種情況,需要父元素的廣播延遲執行.
(這種情況有乙個弊端,當進入子頁面後再次重新整理頁面,這次的廣播已經沒有了,就會導致這個子頁面的資料獲取失敗了.)
(3)定義全域性變數(window)
將多個控制器都需要通訊的變數定義為全域性的.這樣每個控制器都可以訪問到和改寫.
(4) 快取
sessionstorage, localstorage, cookie,瀏覽器的各種資料庫
以上方法個人比較推薦路由傳參的方式
(1)頁面離開時清除頁面的定時器
(2)頁面離開時清除頁面的***
(3)頁面離開時清除頁面的modal,popover之類的遮罩層.
var destroywatcher = $scope.$watch(...);
//示例**
//$watch方法會返回乙個函式,這個函式用來銷毀***,我們用乙個變數承接這個函式,然後再destory的時候呼叫這個函式就可以銷毀不必要的***了.
$scope.$on("$destroy", function()
$scope.popover.remove();
destroywatcher();
}
就先寫到這兒了,後面會持續更新... AngularJS分層開發
為了angularjs的 利於維護和復用,利用mvc的模式將 分離,提高程式的靈活性及可維護性。1,前端基礎層 2,前端服務層 服務層 http 其它方法.3,父控制器 基本控制層 scope 分頁控制項配置 scope.paginationconf 4,前端控制層 繼承父控制器 實際是與basec...
Windows下開發Linux程式注意事項
今天嘗試在windows下編譯openocd sysprogs移植版 使用mingw32 記錄下過程中解決遇到的兩個問題 開始使用github desktop直接clone,沒有想到一些第三方庫繫結的是引用。在編譯開始後,儲存,檢視路徑發現完全是空目錄。後來google發現需要加上上述選項。這個很容...
windows使用cmake開發C 注意事項記錄
一,庫引用 在cmakelists.txt中配置opencv的頭檔案目錄和lib檔案即include directories和target link libraries即可完成引用。include directories和target link libraries可都使用絕對路徑,避免出錯。用ope...