寫在前面——真心沒時間精力仔細總結了,先放這兒,有空再細化~~~~~~~~
近期一直在玩Angularjs,不得不說,相對於Knockout,Angularjs這一MVVM框架更強大,也更復雜,各種教程網上到處都是,不過真正用到項目的時候會遇到各種坑。
這兒有一篇Think in Angularjs主要講的是Angularjs思想等,對於我們用過若干年Jquery的人來說有些思想確實和Angularjs有不一樣,不過可能有些方面有點過於理想化了,或者說如果要做到Think in Angularjs需要對Angularjs理解比較透徹,個人見解。
一方面由於許多東西在用的時候理解的不甚透徹,另一方面由於在現有的項目中,很難把所有東西都按照Angularjs的寫法來做。在享受Angularjs帶來的數據綁定&交互的方便的同時我們還需要繼續使用項目中原有的UserControl、插件,那么在此過程中會遇到各種問題,現總結如下:
1.和Jquery的兼容問題,Angularjs自帶jqLite,在使用過程中發現,如果項目中使用jquery-1.6.4版本,那么如果將AngularJs引用放在Jquery后面就會報錯,但是Jquery-1.8之后沒有這個問題。
2.和Jquery-ui-dialog結合使用的問題,項目中會經常用到各種模態框,其實個人感覺最好的方式就是用一套采用Angularjs編寫的組件/插件,ui bootstrap是目前我見過寫的最好的。不過這個是理想的狀態,奈何項目中一直習慣使用Jquery-ui-dialog,那么在使用的過程中就會遇到問題,問題描述出來可能比較繁瑣,如下:
假設頁面有一個產品列表,點擊產品名稱要展示相應的產品詳情:
-
1.angularjs vs jquery 1.6.4
2.jquery ui dialog 脫離了controller
3.加載時機問題
4.$timeout要想清楚 回來后。。 select init
bind trigger 第三方調$scope內部方法 http://www.html-js.com/article/Using-Angular-to-develop-web-applications-use-AngularJS-to-create-a-pre-input-plugins
5.date:'yyyy-MM-dd HH:mm:ss' 格式化 截斷
6.IE(9)緩存
7.IE8 兼容問題(不支持自定義標簽)http://rritw.com/a/bianchengyuyan/JS/2014/0405/488748.html: <!--[if lte IE 8]>
<script>
document.createElement('radio-list');
</script>
<![endif]-->
8.閃爍 {{}}->ng-bind
9.//# sourceMappingURL=angular.min.js.map10.$http post
11.track by $index
12.自定義的不能用 ng-前綴 否則會報錯Error: [$compile:ctreq]
13.ng-repeat 原list不存在的情況 添加無反應 參見autoList currTopicModel.TopicCategories.push({ Tags: [] });