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