您好,登錄后才能下訂單哦!
這篇文章主要介紹了angular常見問題有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
AngularJS可以視為是一種數據優先的框架,在它的三個層面中,數據模型是骨架,視圖模型和業務事件是血肉,視圖模板和指令是皮毛,這三層合在一起,就形成了一個活生生的Web應用。
1.ng-if的情況下 ,始終將頁面中的元素綁定到對象的屬性(data.x)而不是直接綁定到基本變量(x)上。因為ng-if 會(隱式地)產生新作用域。
2.ng-repeat迭代數組的時候,如果數組中有相同值,會有什么問題,如何解決? 加 track by $index 可解決。也可以 trace by 任何一個普通的值
3.ng-click 中寫的表達式,能使用 JS 原生對象上的方法嗎?不能用,只要是在頁面中,都不能直接調用原生的 JS 方法。因為這些并不存在于與頁面對應的 Controller 的 $scope 中。
<p>{{13.14 | parseIntFilter}}</p> app.filter('parseIntFilter', function(){ return function(item){ return parseInt(item); } })
4.{{now | 'yyyy-MM-dd'}} 這種表達式里面,豎線和后面的參數通過什么方式可以自定義?
ng 內置的 filter 有九種:
date(日期)
currency(貨幣)
limitTo(限制數組或字符串長度)
orderBy(排序)
lowercase(小寫)
uppercase(大寫)
number(格式化數字,加上千位分隔符,并接收參數限定小數點位數)
filter(處理一個數組,過濾出含有某個子串的元素)
json(格式化 json 對象)
5.filter 有兩種使用方法,一種是直接在頁面里:
<p>{{now | date : 'yyyy-MM-dd'}}</p>
另一種是在 js 里面用:
// $filter('過濾器名稱')(需要過濾的對象, 參數1, 參數2,...) $filter('date')(now, 'yyyy-MM-dd hh:mm:ss');
自定義 filter
// 形式 app.filter('過濾器名稱',function(){ return function(需要過濾的對象,過濾器參數1,過濾器參數2,...){ //...做一些事情 return 處理后的對象; } }); // 栗子 app.filter('timesFilter', function(){ return function(item, times){ var result = ''; for(var i = 0; i < times; i++){ result += item; } return result; } })
6.factory、service 和 provider 是什么關系?
factory返回的是一個對象,而service返回的是一個實例化對象,綁定到 this 的都可以被訪問。provider 是加強版 factory,返回一個可配置的 factory
7.性能問題
作為 MVVM 框架,因為實現了數據的雙向綁定,對于大數組、復雜對象會存在性能問題。
可以用來 優化 Angular 應用的性能 的辦法:
減少監控項(比如對不會變化的數據采用單向綁定)
主動設置索引(指定 track by,簡單類型默認用自身當索引,對象默認使用 $$hashKey,比如改為 track by item.id)
降低渲染數據量(比如分頁,或者每次取一小部分數據,根據需要再取)
數據扁平化(比如對于樹狀結構,使用扁平化結構,構建一個 map 和樹狀數據,對樹操作時,由于跟扁平數據同一引用,樹狀數據變更會同步到原始的扁平數據)
感謝你能夠認真閱讀完這篇文章,希望小編分享的“angular常見問題有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。