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...