溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

angular常見問題有哪些

發(fā)布時間:2021-08-02 14:28:15 來源:億速云 閱讀:114 作者:小新 欄目:web開發(fā)

這篇文章主要介紹了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í)!

向AI問一下細節(jié)

免責(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)容。

AI