angularjs 原始碼分析1

2021-06-25 20:48:58 字數 3713 閱讀 3315

1、angularjs的實現原理是什麼

angularjs通過在html檔案裡加入特定的標籤來進行相應事件繫結等各種動作,簡化了前端程式的開發。

2、angularjs是怎樣執行起來的?

angularjs指令碼執行時進行了三步操作

1、繫結jquery,可以使用jquery方便的操作頁面元素。

2、發布angular api函式,可以呼叫然後進行不同的操作。

3、渲染頁面,識別頁面的特定標籤,呼叫相關api 進行事件註冊等動作。

3、繫結jquery 這一步做了什麼

如果已有jquery則使用jquery,同時擴充套件jquery,使之擁有

scope、isolatescope、controller、injector、inheriteddata 五個jqlite的屬性

如果木有jquery,就使用jqlite充當jquery。

修改jquery的remove、empty、html 函式,也就是在用query修改html的時候,會進行相應的angularjs的事件繫結等操作的移除。

4、發布api 做了什麼

使angular成為window的物件,這樣我們就可以直接使用angular呼叫函式,

擴充套件angular的函式,使用angular.function的方式,可以呼叫以下常用的js方法。

bootstrap: bootstrap,

copy: copy,

extend: extend,

equals: equals,

element: jqlite,

foreach: foreach,

injector: createinjector,

noop: noop,

bind: bind,

tojson: tojson,

fromjson: fromjson,

identity: identity,

isundefined: isundefined,

isdefined: isdefined,

isstring: isstring,

isfunction: isfunction,

isobject: isobject,

isnumber: isnumber,

iselement: iselement,

isarray: isarray,

version: version,

isdate: isdate,

lowercase: lowercase,

uppercase: uppercase,

callbacks: ,

$$minerr: minerr,

$$csp: csp

註冊angularjs 提供的指令directive

頁面要素指令:

a: htmlanchordirective,

input: inputdirective,

textarea: inputdirective,

form: formdirective,

script: scriptdirective,

select: selectdirective,

style: styledirective,

option: optiondirective,

ngbind: ngbinddirective,

ngbindhtml: ngbindhtmldirective,

ngbindtemplate: ngbindtemplatedirective,

ngclass: ngclassdirective,

ngclasseven: ngclassevendirective,

ngclassodd: ngclassodddirective,

ngcloak: ngcloakdirective,

ngcontroller: ngcontrollerdirective,

ngform: ngformdirective,

nghide: nghidedirective,

ngif: ngifdirective,

nginclude: ngincludedirective,

nginit: nginitdirective,

ngnonbindable: ngnonbindabledirective,

ngpluralize: ngpluralizedirective,

ngrepeat: ngrepeatdirective,

ngshow: ngshowdirective,

ngstyle: ngstyledirective,

ngswitch: ngswitchdirective,

ngswitchwhen: ngswitchwhendirective,

ngswitchdefault: ngswitchdefaultdirective,

ngoptions: ngoptionsdirective,

ngtransclude: ngtranscludedirective,

ngmodel: ngmodeldirective,

nglist: nglistdirective,

ngchange: ngchangedirective,

required: requireddirective,

ngrequired: requireddirective,

ngvalue: ngvaluedirective

}).事件指令:

5、最後一步渲染頁面做了什麼

cvDilate 原始碼分析 1

在cv.h檔案中對cvdilate的定義如下 cvapi void cvdilate const cvarr src,cvarr dst,iplconvkernel element cv default null int iterations cv default 1 iplconvkernel 指...

leveldb原始碼分析1

leveldb是乙個key value型的儲存引擎,由google開發,並宣布在bsd許可下開放源 plain git clone plain cd leveldb make all 此時生成libleveldb.a庫檔案。拷貝leveldb的標頭檔案到 usr include下 plain cp ...

Leveldb原始碼分析 1

前言 看了一點oceanbase,沒有意志力繼續堅持下去了,暫時就此中斷,基本上算把master看完了,比較重要的update server和merge server 卻沒有細看。中間又陸續研究了hadoop的原始碼,主要是name node和寫入pipeline。主要的目的是想看看name nod...