国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

AngularJs

sf190404 / 1548人閱讀

摘要:當(dāng)左右服務(wù)都被解析并返回時(shí),會(huì)以服務(wù)為參數(shù)去調(diào)用組件的構(gòu)造函數(shù)。發(fā)送或廣播的消息應(yīng)該限定在最小的作用域。置頂一個(gè)通過,發(fā)送的消息列表并且窒息的管理以防止命名沖突在需要格式化數(shù)據(jù)時(shí),將格式

angular

數(shù)據(jù)雙向綁定的框架

提供數(shù)據(jù)綁定,DOM指令。angular,定義了一套規(guī)則,開發(fā)中就必須遵守規(guī)則,這套規(guī)則為項(xiàng)目提供了一套解決方案。

模塊組件模板元數(shù)據(jù)數(shù)據(jù)綁定, 指令服務(wù),依賴注入,控制器過濾器,路由

基本概念 啟動(dòng)/引導(dǎo)

啟動(dòng)/引導(dǎo) (Bootstrap)
作用:啟動(dòng)程序入口(bootstrap方法來引導(dǎo)Anuglar引用程序)
識(shí)別應(yīng)用程序中的根作用域$rootScope
通過依賴注入體系注冊服務(wù)的提供商

屬性型指令

屬性型指令 (Attribute Directive)
是指令分類的一種。
作用:監(jiān)聽或修改其它HTML元素,屬性,組件的行為。一般作為HTML屬性。
例如: ng-controller 當(dāng)前所在的元素添加控制器。

組件

組件(Component)
作用:把數(shù)據(jù)展示到視圖(view),并處理所有的視圖顯示和交互邏輯的Angular類。

在類中定義組件的應(yīng)用邏輯 ( 它被用來為視圖提供支持 ) , 組件通過一些由屬性和方法組成的 API 與視圖交互。

組件是Angular系統(tǒng)中最重要的基本構(gòu)造核心之一。

數(shù)據(jù)綁定

數(shù)據(jù)綁定(Data Binding)
作用:將數(shù)據(jù)展示給用戶,用戶操作做出應(yīng)答。
將這些數(shù)據(jù)顯示到HTML中,添加事件監(jiān)聽器,獲取數(shù)據(jù)變化,更新數(shù)據(jù)。

在雙向數(shù)據(jù)綁定中,數(shù)據(jù)的屬性值會(huì)從具有屬性綁定的組件傳到輸入框。通過事件綁定,用戶的修改數(shù)據(jù)傳回到組件,把屬性值設(shè)置為最新的值。

Anuglar 在每一個(gè)JS事件周期中一次性處理所有的數(shù)據(jù)綁定,它會(huì)從組件樹的根部開始,用深度優(yōu)先的方式! (數(shù)據(jù)綁定在模板與對(duì)應(yīng)組件的交互中起到了重要作用)

組件從技術(shù)角度上看就是一個(gè)指令。組件位置很獨(dú)特,并在Angular中位于中心地位。

插值表達(dá)式

屬性綁定

事件綁定

attribute綁定

css類綁定

樣式綁定

基于ngModel的雙向數(shù)據(jù)綁定

單向綁定 (ng-bind) 和雙向綁定(ng-model)

ng-bind 單項(xiàng)數(shù)據(jù)綁定 ($scope -> view) 用于數(shù)據(jù)顯示,簡寫形式 {{}}
區(qū)別:頁面沒有加載完畢{{val}} 會(huì)直接顯示到頁面,知道Angular渲染該綁定數(shù)據(jù).
ng-bind則是在Angular渲染完畢后將數(shù)據(jù)顯示.

ng-model 雙向數(shù)據(jù)綁定 ($scope -> view and view -> $scope) ,用戶綁定值會(huì)變化的表單元素等.

每次綁定一個(gè)東西到 view 上時(shí) AngularJS 就會(huì)往 $watch 隊(duì)列里插入一條 $watch,用來檢測它監(jiān)視的 model 里是否有變化的東西。

當(dāng)瀏覽器接收到可以被 angular context 處理的事件時(shí),$digest 循環(huán)就會(huì)觸發(fā)。$digest 會(huì)遍歷所有的 $watch 。

一次更新數(shù)據(jù)操作,至少會(huì)觸發(fā)兩次$digest() 循環(huán),$gigest循環(huán)的次數(shù)達(dá)到了10次(超過10次后拋出一個(gè)異常,為了防止無限循環(huán))

依賴注入

依賴注入(Dependency Injection)

需要依賴的原因:沒法控制這實(shí)例背后隱藏的依賴。 當(dāng)不能控制依賴時(shí),類就會(huì)變得難以測試。

按需注入,需要才注入。
通過給函數(shù)添加形參,使得caller傳入的參數(shù)的callee接收的參數(shù)邏輯分離,使得函數(shù)通過依賴管理系統(tǒng)僅僅需要聲明需呀的協(xié)作對(duì)象,而不需要知道從哪里來,如何創(chuàng)建等問題。

依賴注入即是設(shè)計(jì)模式,同時(shí)又是一種機(jī)制:當(dāng)應(yīng)用程序的一些組件需要另外一些組件的時(shí)候,使用依賴注入機(jī)制來創(chuàng)建被請(qǐng)求的部件并將其注入到發(fā)出請(qǐng)求的組件中。

提供類的新勢力的一種方式,負(fù)責(zé)處理好累所需的全部依賴。大多數(shù)依賴都是服務(wù)。Angualr使用依賴注入提供所需的組件以及組件所需的服務(wù)。

angular構(gòu)建應(yīng)用程序時(shí):定義許多精簡的小部件,每個(gè)小部件只做一件事,并且做好它,然后在運(yùn)行期把這寫精簡小部件裝配在一起組成應(yīng)用程序。

依賴注入的核心是:注入器(Injector),這個(gè)注入器根據(jù)需要返回被依賴的部件。injector.get(token) 方法返回與token(令牌)參數(shù)相關(guān)的依賴部件。

令牌是一個(gè)Angular中類型.絕大多數(shù)類方法都接受類名或字符串。Angular會(huì)把這些類名稱和字符串轉(zhuǎn)換成令牌。當(dāng)調(diào)用injector.get(Foo)時(shí),注入器返回用Foo類生成的令牌所對(duì)應(yīng)的依賴值,該依賴值通常是Foo 類的實(shí)例。

注入器(Injector)維護(hù)一個(gè)令牌與相應(yīng)依賴值的對(duì)照表(map)。如果注入器不能找到一個(gè)令牌對(duì)應(yīng)的依賴值,它就會(huì)使用提供商(Provider) 來創(chuàng)建一個(gè)依賴值.

提供商是創(chuàng)建依賴實(shí)例的“菜譜”之一,這個(gè)實(shí)例會(huì)與一個(gè)特定的令牌關(guān)聯(lián)起來。

只有當(dāng)注入器內(nèi)部的提供商注冊表中存在于令牌對(duì)應(yīng)的提供商時(shí),注入器才能為這個(gè)令牌創(chuàng)建一個(gè)依賴值。

angular會(huì)為每個(gè)注入器注冊很多angular內(nèi)建提供商。
通常注冊提供商的最佳時(shí)間是在應(yīng)用程序引導(dǎo)(Bootstrap)的時(shí)候。

依賴注入滲透在整個(gè)框架中,并且被到處使用。
注入器負(fù)責(zé)維護(hù)一個(gè) 容器 ,用于存放它創(chuàng)建過的服務(wù)實(shí)例。
注入器能使用 提供商 創(chuàng)建一個(gè)新的服務(wù)實(shí)例。
提供商 是一個(gè)用于創(chuàng)建服務(wù)的“配方”。
把 提供商 注冊到注入器。

指令

指令(Directive)
指令是一個(gè)Angular類
作用:創(chuàng)建和重塑瀏覽器DOM中的HTML元素,負(fù)責(zé)與HTML元素的應(yīng)答系統(tǒng)

指令包括的類別:

組件(Component): 用來把程序邏輯和HTML模板組合起來,渲染出應(yīng)用程序的視圖。組件一般表示成HTML元素的形式,

屬性型指令:可以監(jiān)控和修改其它HTML元素,HTML屬性,DOM屬性,組件等行為。

結(jié)構(gòu)性指令:負(fù)責(zé)塑造HTML布局。一般是通過添加,刪除或操作HTML元素及其子元素來實(shí)現(xiàn)的。

注入器

注入器(Injector)
Anuglar依賴注入系統(tǒng)中的一個(gè)對(duì)象。
作用:從緩存中找到一個(gè)"有名字的依賴"或者利用一個(gè)已注冊的提供商來創(chuàng)建依賴。

注入器是一個(gè)維護(hù)服務(wù)實(shí)例的容器,存放著以前創(chuàng)建的實(shí)例。
如果容器中還沒有所請(qǐng)求的服務(wù)實(shí)例,注入器就會(huì)創(chuàng)建一個(gè)服務(wù)實(shí)例,并且添加到容器中,然后把這個(gè)服務(wù)返回給Angular。
當(dāng)左右服務(wù)都被解析并返回時(shí),Angular會(huì)以服務(wù)為參數(shù)去調(diào)用組件的構(gòu)造函數(shù)。

插值表達(dá)式

插值表達(dá)式(Interolation)

屬性數(shù)據(jù)綁定的形式:位于雙大括號(hào)中的模板表達(dá)式會(huì)被渲染成文本。

模塊

模塊(Module)
應(yīng)用程序通常由很多個(gè)模塊組裝而成。
模塊導(dǎo)出東西--類,函數(shù),值,供其它模塊引入。
把應(yīng)用寫成一組模塊,每個(gè)模塊只導(dǎo)出一樣?xùn)|西。

模塊:具有單一用途的內(nèi)聚代碼塊

一個(gè)模塊加載器來按需加載模塊并解析模塊的依賴關(guān)系。

模塊庫

有些模塊是其它模塊的庫
Anuglar 本身就是通過npm包發(fā)布的一組模塊庫, 以@angular為前綴。
每個(gè)庫包含一個(gè) 封裝桶 。是公開的外觀層(facade) 包括一些邏輯相關(guān)的私有模塊。

管道

管道(Pipe)

管道是一個(gè)函數(shù)
作用:把輸入值換成輸出值供視圖顯示。

提供商

提供商(Provider)
作用:依賴注入系統(tǒng)依靠提供商來創(chuàng)建依賴實(shí)例。
它把一個(gè)供查閱用的令牌和代碼關(guān)聯(lián)到一起,以便創(chuàng)建依賴值。

服務(wù)

服務(wù)是一個(gè)類,具體實(shí)現(xiàn)一件事情,具有專注,良好定義的用途。
幾乎任何東西都可以是一個(gè)服務(wù)。

結(jié)構(gòu)型指令

添加,刪除或操作元素和其各級(jí)子元素來塑造或重塑HTML布局的指令。

例如:ngIf

模板

模板(Template)
模板是大塊HTML。
作用:渲染視圖
Angular會(huì)在指令和組件的支持和持續(xù)指導(dǎo)下,渲染視圖。

裝飾器

裝飾器 (Decorator | Decoration)

裝飾器是一個(gè) 函數(shù),這個(gè)函數(shù)將元數(shù)據(jù)添加到類,類成員(屬性,方法)和函數(shù)上。

angular 使用自身一套裝飾器來實(shí)現(xiàn)應(yīng)用程序各個(gè)部分之間的相互操作。

基礎(chǔ)指令 ng-app

應(yīng)用程序的指令,一個(gè)程序中必須要有該指令


ng-model

數(shù)據(jù)綁定的指令,將數(shù)據(jù)綁定到應(yīng)用程序中


ng-bind

綁定數(shù)據(jù),它的簡寫方式直接在元素中{{key}}

{{ msg }}

當(dāng)頁面加載完畢,angularjs啟動(dòng)起來,首先回去頁面中尋找ng-app指令,找到后初始化應(yīng)用程序。
ng-app告知angular這個(gè)應(yīng)用是綁定那個(gè)DOM元素,也就是程序初始化的元素時(shí)body,所以以后綁定的指令能夠生肖的只能在ng-app所在的元素中
angularjs找到ng-model指令,它將該指令對(duì)應(yīng)數(shù)據(jù)綁定在該程序的作用域中。
angularjs找到ng-bind或者{{key}} 指令,它將數(shù)據(jù)渲染到該元素內(nèi)。
angularjs遍歷其它指令,完畢后,就可以使用應(yīng)用程序。

ng-init

表示初始化應(yīng)用程序中的變量,多個(gè)變量用; 注意定義多個(gè)變量不能用逗號(hào),只能用分號(hào);

{{ info }} {{ msg }}
module

通過angular.module方法
該方法有兩個(gè)參數(shù)
參數(shù)1,表示程序的名稱。
參數(shù)2,表示依賴服務(wù)(依賴集合)
依賴就是達(dá)到某個(gè)目的的必要條件(不可或缺)。

var app = angular.module("app", []); 
controller控制器

定義控制器
App的controller方法:
兩個(gè)參數(shù)
第一個(gè)參數(shù)表示控制器的名稱
第二參數(shù)表示控制器的構(gòu)造函數(shù)
參數(shù)是你需要的數(shù)據(jù),需要什么可以傳遞什么,這樣在構(gòu)造函數(shù)中就可以使用它,如果沒有傳遞就無法使用
ng-controller 控制應(yīng)用程序的,后期對(duì)某一視圖動(dòng)態(tài)改變的作用

定義控制器
app.controller();
參數(shù)1:控制器名稱
參數(shù)2:控制器的回調(diào)函數(shù)(構(gòu)造函數(shù))
回調(diào)函數(shù)的參數(shù)是所需要的數(shù)據(jù),需要什么可以傳遞什么,這樣在回調(diào)函數(shù)中就可以使用它,如果沒有傳遞就無法使用

angular參數(shù)注入:想用什么東西就在參數(shù)中注入。

不要再控制器中操作 DOM。 通過指令完成。

通過控制器完成的功能命名控制器,并以字符串Ctrl結(jié)尾,例如:(HomePageCtrl)

控制器不應(yīng)該全局中定義

盡可能精簡控制器,將通用函數(shù)抽線為獨(dú)立的服務(wù)

通過方法引用進(jìn)行跨控制器通訊(通常是子控制器與父控制器通訊) 或者 $emit,$broaadcast 以及 $on 方法。發(fā)送或廣播的消息應(yīng)該限定在最小的作用域。

置頂一個(gè)通過 $emit,$boradcast 發(fā)送的消息列表并且窒息的管理以防止命名沖突

在需要格式化數(shù)據(jù)時(shí),將格式化邏輯封裝成 過濾器

// 控制器
app.controller("msg", function ( $scope ) {
    
    console.log( this );
    console.log( arguments );
    
});
控制器$scope

$scope: 用來實(shí)現(xiàn)數(shù)據(jù)與視圖的連接,在$scope上定義的數(shù)據(jù),可以用視圖在上,那么視圖上綁定的數(shù)據(jù)可以在$scope上也能獲取到

$scope 是通過原型式繼承實(shí)現(xiàn), 子作用域會(huì)繼承父作用域中的變量,但是可以為子作用域添加變量還重寫符作用域中的變量。

scope特點(diǎn)

$scope 是一個(gè) POJO 簡單的Java對(duì)象

$scope 提供了一些工具方法$watch()/$apply();

$scope 表達(dá)式執(zhí)行環(huán)境,或者說作用域

$scope 是一個(gè)樹型結(jié)構(gòu),與DOM標(biāo)簽平行

每一個(gè)angularjs應(yīng)用都有一個(gè)跟作用域$rootScope,位于ng-app上

$scope 可以傳播事件,類似DOM事件,可以向上下可以向下

$scope 不僅是MVC 的基礎(chǔ),也是后買呢實(shí)現(xiàn)雙向綁定的基礎(chǔ),應(yīng)用開始先找rootScope,然后把下級(jí)scope附加到rootScope上從而形成樹型結(jié)構(gòu).

scope生命周期

創(chuàng)建(creationd)

在創(chuàng)建控制器或指令時(shí),angularjs會(huì)用$onjector創(chuàng)建一個(gè)新的作用域,并在這個(gè)新建的控制器或指令時(shí)把作用域傳進(jìn)去

鏈接

scope對(duì)象會(huì)附加或鏈接到視圖。這些作用域?qū)?huì)注冊到 angular上下文中發(fā)生變化時(shí)需要運(yùn)行的函數(shù)
$watch -> 注冊監(jiān)控(Watcher registration) 變化時(shí)執(zhí)行 回調(diào)函數(shù)

更新

事件循環(huán)執(zhí)行時(shí),頂級(jí)的$rootScoep和每個(gè)子作用域都執(zhí)行自己的臟值檢查。某個(gè)監(jiān)控函數(shù)監(jiān)控變化,檢測到變化后,$scope會(huì)觸發(fā)指定的回調(diào)函數(shù)。

銷毀

當(dāng)scope在視圖中不再需要時(shí),會(huì)清晰和銷毀自己。
$scope.$destory();

events

ng-eventsName
例如:ng-click
如果想在回調(diào)函數(shù)中傳遞參數(shù),在圓括號(hào)里面直接添加

執(zhí)行的作用域是$scope,當(dāng)前的作用域
參數(shù)通過元素調(diào)用時(shí)傳遞的參數(shù)一致,最后一個(gè)參數(shù)為事件對(duì)象


// 事件
$scope.clickBtn = function ( msg, ev ) {
    
}
顯隱

ng-show 表示顯示元素指令
ng-show 顯示元素:true顯示,false隱藏
ng-hide 隱藏元素:true隱藏,false顯示

1
2
表達(dá)式

插值和數(shù)據(jù)的過程中可以應(yīng)用表達(dá)式
的綁定過程我們可以應(yīng)用表達(dá)式
在表達(dá)式中不僅僅可以用運(yùn)算符,還可以應(yīng)用js提供的方法

{{"面積是:" + width * height}}
{{ msg.toUpperCase() }}
過濾器

用來對(duì)綁定數(shù)據(jù)顯示時(shí)候處理
{{key | filter}}

內(nèi)置過濾器

currency
格式化數(shù)字為貨幣格式

{{msg | json}}
{{ msg | currency }}

filter
過濾數(shù)組項(xiàng)

{{ color | filter : "n" }}
{{ color | filter : filterChar }}
{{ color | filter : filterFirstStr }}

date
日期過濾器,格式化日期

{{ iDate | date : "yyyy" + "年"}} {{ iDate | date : "MM" + "月" }} {{ iDate | date : "dd" + "日" }} {{ iDate | date : "HH" + ":" + "mm" }}

{{ iDate | date : "yyyy年 MM月dd日 HH:mm" }}

// app 
var app = angular.module("appBody", []);

// controller 
app.controller("filters", function ( $scope ) {
    
    $scope.color = ["tan", "khaki", "Pink", "cyan"];
    
    // a 過濾出來
    $scope.filterChar = "a";
    
    $scope.filterFirstStr = function ( val ) {
        
        // 匹配首字母大寫
        return val[0] === val[0].toUpperCase();
        
    }
    
});

limitTo
截取過濾器
參數(shù)表示截取的長度
這個(gè)過濾器不僅僅可以截取字符串,還可以截取數(shù)組

{{ color | limitTo : 2 }}
{{ msg | limitTo : 3 }}

字符串大小寫
uppercase 將字符串轉(zhuǎn)化成大寫
lowercase 將字符串轉(zhuǎn)化成小寫
這個(gè)過濾器痛對(duì)數(shù)據(jù)直接調(diào)用字符串方法toUpperCase和toLowerCase效果是一樣的
但是angular建議使用過濾器
過濾器可以被復(fù)用
不建議在表達(dá)式中使用方法(除特殊情況)

{{ msg | uppercase }}
{{ msg | lowercase }}
{{ msg.toLowerCase() }}

number過濾器
是一種數(shù)字類型數(shù)據(jù)過濾器
參數(shù)表示截取小數(shù)位置
該過濾器是將數(shù)字以每三為分割渲染的
不傳遞參數(shù)默認(rèn)保留三維,最后一位四舍五入

{{ num | number }}
{{ num | number : 4 }}

orderBy
對(duì)數(shù)組進(jìn)行排序的過濾器
參數(shù)1,數(shù)組中每個(gè)成員排序的索引屬性名稱
參數(shù)2,正序還是倒序 (true反序)

{{ color | orderBy : "" : true }}
{{ color | orderBy }}
自定義過濾器

定義
通過app提供的filter方法來定義過濾器 app.filter();接受兩個(gè)參數(shù)
參數(shù)1,過濾器的名稱
參數(shù)2,過濾器的回調(diào)函數(shù)(構(gòu)造函數(shù))
回調(diào)函數(shù)必須返回一個(gè)函數(shù),這個(gè)函數(shù)在每次數(shù)據(jù)更新時(shí)候執(zhí)行。
回調(diào)函數(shù)只執(zhí)行一次
返回的函數(shù),可以接受過濾器使用時(shí)傳遞的參數(shù),但是第一個(gè)參數(shù)永遠(yuǎn)是綁定的數(shù)據(jù),后的參數(shù)才是傳遞的參數(shù),參數(shù)的順序痛使用時(shí)傳遞參數(shù)的順序一致。

調(diào)用
使用方式同內(nèi)置過濾器一樣,在管道符號(hào)后面添加過濾器的名稱,通過添加參數(shù)

使用小駝峰命名

盡可能使過濾器精簡。 過濾器在 $digest loop 中頻繁被調(diào)用,過于復(fù)雜的運(yùn)算使得整個(gè)應(yīng)用執(zhí)行緩慢。

在過濾器中只做一件事. 更加復(fù)雜的操作可以用pipe來實(shí)現(xiàn).



{{ msg | CaseChar }}
{{ msg | CaseChar : true }}

app.filter("CaseChar", function () {
    
    return function ( val, FirstToUpper ) {
    
        if ( val ) {
            
            // FirstToUpper 參數(shù) 表示第一個(gè)字母大寫
            if ( FirstToUpper ) {
                
                // 第一個(gè)字母 大寫
                val = val.replace(/^[a-z]/, function ( match, $1 ) {
                    
                    return match.toUpperCase();
                    
                });
                
            }
            
            // 存在輸入的val 值   轉(zhuǎn)駝峰
            return val.replace(/_([w])/g, function ( match, $1 ) {
                
                return $1.toUpperCase();
                
            });
            
        } 
        
        return "";
        
    }
    
});
表單驗(yàn)證

當(dāng)對(duì)表單元素form添加name屬性時(shí)候,angular會(huì)自動(dòng)將該屬性的值添加到作用域中,并且該屬性具有表單驗(yàn)證的屬性. 具有FormContorller對(duì)象

$dirty 表單是否被用戶輸入過,輸入過,值為true,沒有輸入過值為false
$pristine 表單是否被用戶輸入過,輸入過,值為false,沒有輸入過值為true
$valid 輸入的值是否合法,合法值為true,不合法為false
$invalid 輸入的值是否合法,合法值為false,不合法為true

$valid 屬性值為true時(shí),所有表單元素必須$valid都是true
$invalid 屬性為true時(shí),只要有一個(gè)表單元素$invalid之為true
$dirty 屬性為true時(shí),只要有一個(gè)表單元素被修改過,$dirty值為true
$pristine 屬性為true時(shí),所有的元素未被修改過,那么$pristine值為true

輸入的長度大于5
輸入內(nèi)容必須是emial
輸入的內(nèi)容必須是4-6位數(shù)字
run-$rootScope

獲取app并執(zhí)行(程序入口指令會(huì)提供一個(gè)run方法),通常會(huì)在該方法中訪問根作用域,該方法接收一個(gè)函數(shù)作為參數(shù),
函數(shù)中的this指向window,因此可以訪問到全局作用域下的變量。
arugments默認(rèn)沒有值,需要什么值,需要通過參數(shù)注入來供函數(shù)內(nèi)使用。
作用:處理的是根作用域,因此通常要將$rootScope傳遞進(jìn)來.

app.run(function ( $rootScope ) {
});

controller與作用域

var app = angular.module("main", []);

app.controller("parentCtrl", function ( $scope ) {
    
    $scope.clickParent = function () {
        
        $scope.msg = "parentScope";
        
        
    }
    
}).controller("childCtrl", function ( $scope ) {
    
    $scope.clickChild = function () {
        
        $scope.msg = "childScope";
        
    }
    
});

// rootScope
app.run(function ( $rootScope ) {
    
    $rootScope.msg = "rootScope";
    
})

console.log( app );
ng指令

ng-disabled
表單是否可以操作


ng-readonly
表單是否是只讀


ng-checked
選擇框是否被選中
值為true:選中
值為false:未選擇


ng-change
監(jiān)聽輸入表單內(nèi)容的改變,當(dāng)表單內(nèi)容改變的時(shí)候就會(huì)觸發(fā).
改變的時(shí)候,需要知道數(shù)據(jù)是否更改,需要加上ng-model

    
app.controller("inp", function ( $scope ) {
    
    $scope.change = function () {
        
        alert($scope.msg);
        
    }
    
});

ng-submit
對(duì)form表單元素綁定submit事件,當(dāng)點(diǎn)擊表單中submit元素時(shí)候,會(huì)觸發(fā)該事件
ng-submit需要搭配標(biāo)簽form使用

ng-src
瀏覽器打開頁面,瀏覽器不認(rèn)識(shí)ng-src屬性,所就不會(huì)發(fā)請(qǐng)求,那么當(dāng)ng-src綁定的數(shù)據(jù)imgSrc有數(shù)據(jù)的時(shí)候,angular會(huì)把這個(gè)數(shù)據(jù)賦值給src屬性,讓img標(biāo)簽發(fā)送一個(gè)請(qǐng)求


ng-href
當(dāng)瀏覽器打開頁面的時(shí)候,元素不具有href屬性,就不具有鏈接行為(為#號(hào)卻能夠點(diǎn)擊),ng-src對(duì)這一現(xiàn)象做了優(yōu)化,當(dāng)ng-href綁定的數(shù)據(jù)加載成功后,將這一屬性值,賦值給a標(biāo)簽的href屬性,讓a標(biāo)簽具有連接的行為。

跳轉(zhuǎn)

ng-class
是用來動(dòng)態(tài)創(chuàng)建類的一個(gè)指令,它的只是一個(gè)對(duì)象,對(duì)象中的舒心代表類的名稱,屬性值只能是一個(gè)Boolean
true,會(huì)將該類名添加到元素的class屬性中。
false,會(huì)將該該類名從該元素的class屬性中刪除。

{{ ngClassInfo }}

ng-style
用來動(dòng)態(tài)創(chuàng)建樣式,它的值是一個(gè)對(duì)象,對(duì)象中的屬性表示css屬性,值為css屬性值。

ng-if
判斷指令.
angular中沒有ng-else指令,可以通過ng-if模擬

111111111111
222222222222

ng-switch
分支判斷
當(dāng)元素這是了ng-switch,元素是一個(gè)ie分支判斷的模板,所有分支都要包含在該元素內(nèi)。
通過on指令來設(shè)置判斷條件,ng-switach和on配合使用
ng-switch-when="key":表示判斷某一條件,當(dāng)on的綁定的數(shù)據(jù)值為該分支對(duì)應(yīng)的值的時(shí)候,執(zhí)行。

            
默認(rèn)
1111
2222

ng-repeat
循環(huán)渲染模板
語法: ng-repeate="item in list";
內(nèi)置變量
$index 循環(huán)的索引值,從0開始計(jì)數(shù)
$first 第一次循環(huán)是true,其它次循環(huán)是false
$last 最后一次循環(huán)是true,其它此循環(huán)是false
$middel 除去第一次和最后一次值是true
$even 偶數(shù)次循環(huán)是true,奇數(shù)次循環(huán)是false
$odd 奇數(shù)次循環(huán)是true,偶數(shù)次循環(huán)是false

  • {{ item }} --- {{"索引值:"+$index}} --- {{ $middle }}

ng-include
模板定義在多帶帶文件中,通過ng-include引入進(jìn)來.
ng-include="url" 注意url是字符串

// 數(shù)據(jù)傳輸
var aMsgApp = app.controller("aMsg", function ( $scope ) {
    
    $scope.msg = "載入成功";
    
});

使用 ng-bind 或者 ng-cloak 而 不是使用 {{}} 插值方式,防止頁面渲染閃爍

避免在插值中使用復(fù)雜代碼

需要?jiǎng)討B(tài)設(shè)置 的 src 時(shí)使用 ng-src 而不使用 src中嵌套 {{}}

需要?jiǎng)討B(tài)設(shè)置 的 href 時(shí)使用 ng-href 而不是用 href 中嵌套 {{}}

通過對(duì)象參數(shù)和scope變量作為值來使用 ng-style 指令, 而 不是使用 scope 變量作為字符串通過 {{}} 用于 style 屬性。

自定義指令 directive();

參數(shù)1: 指令的名稱
參數(shù)2: 構(gòu)造函數(shù),自定義指令式,只執(zhí)行一次,將一些復(fù)雜業(yè)務(wù)邏輯放在該函數(shù)中,最后改函數(shù)返回是一個(gè)對(duì)象(用來描述指令)

規(guī)則:

使用小駝峰命名。

在link function 中使用 $scope 。 在compile中, 定義參數(shù)的post/pre link functions 將在函數(shù)執(zhí)行時(shí)被傳遞,無法通過依賴注入改變它們。

指令添加自定義前綴避免與第三方指令沖突

可復(fù)用組件創(chuàng)建獨(dú)立作用域

使用 scope.$on("$destroy", fn) 來清除. 這點(diǎn)在使用第三方指令的時(shí)候特別有用.

返回對(duì)象

restrict: 自定義指令的類型
E,該指令是一個(gè)自定義元素(element)
A,該指令在元素時(shí)屬性上(attributes)
C,該指令在元素的類上(class)
M,注釋指令(comment)

template: 傳遞的是模板字符串

templateUrl: 模板文件的路徑

replace: false
是否替換原有的元素,true會(huì)替換掉原有的元素,false不會(huì)替換掉元素。
當(dāng)設(shè)置true時(shí),會(huì)對(duì)controller中使用的參數(shù)$element 和 $attrs 有影響

controller
用來定義自定義指令的作用域。
this 指向的controller{}空對(duì)象
arguments默認(rèn)情況下是一個(gè)空數(shù)組,需要參數(shù)注入。
$scope 該指令的作用域
$element 該指令的元素
$attrs 該指令的元素的屬性

// directive() 自定義指令
app.directive("curtoms" , function () {
    
    console.log(111);
    
    return {
        
        // 指令類型
        restrict: "EAC",
        
        // 模板字符串
//                    template: "

自定義指令

", // 模板文件獲取 url templateUrl: "a.html", // replace表示是否替換原來的元素,true是替換,false不替換 // replace: false, replace: true, controller: function ( $scope, $element, $attrs ) { // this 指向 controller{} 空對(duì)象 console.log( $scope, $element, $attrs ); } } });

scope
隔離自定義的作用域的屬性,通過對(duì)其社會(huì)字一個(gè)對(duì)象來隔離指令的作用域。
如果值是true或者false,指令的作用域就會(huì)忽略自身作用域,而去尋找父級(jí)作用域中的變量。
如果值是空對(duì)象{} ,作用域會(huì)指向該空對(duì)象

directive返回對(duì)象中的scope和controller
自定義指令中,scope屬性對(duì)controller的影響:
如果scope的值是true,在controller中,定義與父作用域中相同變量時(shí),自定義指令中的變量不會(huì)受到副作用于中的變量的影響。
如果scope是一個(gè)false,在controller中,定義與父作用域相同變量時(shí),該變量與父作用域中的變量同步(同時(shí)修改,數(shù)據(jù)雙向綁定)
如果scope是一個(gè)對(duì)象,在controller中,定義與父作用域相同的變量時(shí),自定義指令中的變量不會(huì)收到父作用域的變量影響。

app.directive("myCutom", function () {
    
    return {
        
        restrict: "E",
        
        template: "

{{ msg }} -- {{ title }}

", // scope: {}, // scope: true, scope: false controller: function ( $scope, $element, $attrs ) { $scope.title = "aaaa"; $scope.msg = "xixixi"; } } });

@修飾符
可以屏蔽模板中變量去controller作用域中尋找值的過程,而是讓其去該自定義指令所在元素的屬性中尋找數(shù)據(jù)變量. 忽略自定義指令的scope。
@修飾符會(huì)去自定義指令中所在元素的屬性去尋找。
屬性值是插值傳入,作為普通屬性處理。


app.directive("myCutom", function () {
    
    return {
        
        restrict: "E",
        
        template: "

{{ msg }} -- {{ title }}

", scope: { // 告知 自定義指令 不需要從 自己的作用域中尋找 變量 title: "@myTitle" }, controller: function ( $scope, $element, $attrs ) { $scope.title = "aaaa"; $scope.msg = "xixixi"; } } });

=修飾符
通過在scope屬性中定義含有=修飾符的變量時(shí),可以取得父作用域中的變量,通過屬性映射.

作用:自定義指令作用域中變量與父作用域的雙向綁定過程.
注意:自定義元素中的屬性值是一個(gè)父作用域中的一個(gè)變量,在自定義指令中當(dāng)作一個(gè)變量來處理。

template,中的數(shù)據(jù)和 父級(jí)的作用域$scope,數(shù)據(jù)綁定

tempalte: "

{{title}}

",
app.controller("main", function ( $scope ) {
    $scope.title = "";
});

link

操作自定義指令的DOM

link的函數(shù)
this指向window
arguments:
1 scope, 指令作用域
2 jqlite 獲取自定義元素
3 attrs 自定義指令元素上的屬性

// 操作自定義指令元素
// @param {Object} scope  子作用域
// @param {Object} jqlite JQ對(duì)象
// @param {Object} attrs 自定義上的屬性
link: function ( scope, jqlite, attrs ) {
    
    // this -> window
    var el = jqlite.children("h1").attr("nodeValue", 1);
    
    // 使用 data 自定義屬性  ,會(huì)自動(dòng)省略  data-
    
    for ( var i=0; i

complie

this指向的是指令描述對(duì)象.
參數(shù)1: jqlite 獲取的自定義元素
參數(shù)2: attrs 自定義指令所在元素的屬性
返回一個(gè)函數(shù), 指向 link 函數(shù)
在返回函數(shù)中,可以操作自定義指令所在元素.

嘻嘻哈哈

transclude

它告訴自定義指令,要將自定義元素中未知的元素內(nèi)容插入到已知模板具有ng-transclude指令所在的元素中(添加自定義指令元素中的未知元素)
未知元素:自定義標(biāo)簽中的元素.

告知自定義指令,要將自定義中未知的元素內(nèi)容插入到已知模板。
條件: 模板標(biāo)簽上具有ng-transclude指令
需要設(shè)置 transclude: true.

現(xiàn)象:模板標(biāo)簽會(huì)包裹自定義標(biāo)簽內(nèi)的內(nèi)容.

app.directive("myDirective", function () {
    
    return {
        
        restrict: "E",
        
        template: "
", transclude: true } });

require

自定義指令引用其它指令,作為link()方法的第四個(gè)參數(shù).
例如,將ngModel引入到自定義指令中. 在link方法中可以訪問到ngModel中的屬性值

require: "ngModel"
// 自定義指令
app.directive("myDirective", function () {
    
    // 返回一個(gè)描述指令對(duì)象
    return {
        
        restrict: "A",
        
        // 引入其它指令
        require: "ngModel",
        
        link: function ( scope, jqlite, attrs, ngModel ) {
            
            // $watch 檢測某個(gè)值 發(fā)生改變,觸發(fā)某個(gè)函數(shù)
            // 當(dāng) ngModel 值發(fā)生改變, 觸發(fā)函數(shù)
            scope.$watch(attrs.ngModel, function () {
                
                console.log(ngModel.$viewValue);
                
            });
            
        }
        
    }
    
});
服務(wù)

對(duì)一些方法的封裝,復(fù)用方法更為簡便。例如:消息系統(tǒng),作為消息服務(wù).
使用服務(wù),利用參數(shù)注入即可。

大駝峰和小駝峰都可

將業(yè)務(wù)邏輯封裝成服務(wù)

將業(yè)務(wù)邏輯封裝成 service 而非 factory

使用 $cacheFactory 進(jìn)行繪畫級(jí)別的緩存。 應(yīng)用于緩存請(qǐng)求或復(fù)雜運(yùn)算的結(jié)果。

內(nèi)置服務(wù)

$timeout
對(duì)setTimeout()的封裝

app.controller("main", function ($scope, $timeout) {

    $timeout(function () {

        console.log(this);
        console.log(arguments);
        
    }, 2000);

});

$interval
對(duì)setInter();的封裝

app.controller("main", function ($scope, $interval) {
    // 定義一個(gè)時(shí)間
    $scope.date = new Date();

    $interval(function () {
        // 重新定義日期
        $scope.date = new Date();
    }, 1000);

});

$http
異步請(qǐng)求

配置參數(shù):
method: 請(qǐng)求方式 "GET","POSt"
url: 請(qǐng)求的地址
$http 方法執(zhí)行完后鏈?zhǔn)秸{(diào)用success(),請(qǐng)求成功的回調(diào)函數(shù)

POST請(qǐng)求:
通過設(shè)置data屬性添加POST請(qǐng)求發(fā)送數(shù)據(jù)
params屬性添加請(qǐng)求的參數(shù)數(shù)據(jù)

// $http 服務(wù)
$http({
    method: "GET",
    url: "data/service.json"
}).success(function ( res ) {  
    
    if ( res.errno === 0 ) {
        
        $scope.msg = res.msg;
    
        console.log(res);
        
    }
    
});
$http({
    method: "POST",
    url: "demo.json",
    // 該屬性會(huì)將鍵值對(duì)轉(zhuǎn)化成url上參數(shù)
    params: {
        id: 11
    },
    // post請(qǐng)求 添加請(qǐng)求數(shù)據(jù)
    data: {
        username: "aa"
    }
});


$http.get,$http.post
$http服務(wù)中的get請(qǐng)求和post請(qǐng)求簡寫方式
params 配置請(qǐng)求參數(shù)

// get 請(qǐng)求
$http.get("data/service.json", {
    params: {
        id: 1
    }
})
// 請(qǐng)求成功
.success(function ( res ) {
    
    console.log( res );
    
});
// post 請(qǐng)求
// 參數(shù)1:url ,參數(shù)2:請(qǐng)求攜帶的數(shù)據(jù)
$http.post("data/service.json", {
    id: 1
})
// 請(qǐng)求成功
.success(function ( res ) {
    
    console.log(res);
    
});
 

promise對(duì)象
允諾對(duì)象,在內(nèi)部是一個(gè)異步操作,當(dāng)操作完成時(shí),這個(gè)對(duì)象會(huì)實(shí)現(xiàn)它的允諾.
特點(diǎn): 可以無限添加允諾。 一定在某些操作完成時(shí)才出發(fā)。
規(guī)范中允諾對(duì)象使用 then方法.

自定服務(wù)

需要各種服務(wù)以支持各種功能,也可以手動(dòng)開啟或關(guān)閉某些服務(wù)以達(dá)到相應(yīng)的功能.

factory()
工廠模式定義自定義服務(wù)
參數(shù)1:服務(wù)名稱
參數(shù)2:服務(wù)工廠方法
返回值:服務(wù)對(duì)象,這個(gè)對(duì)象提供其它控制器使用

var app = angular.module("app", []);

// 其它控制器使用服務(wù)
app.controller("facotryCtrl", function ( $scope, news ) {
    
    $scope.msg = news.data;
    
});

// factory 定義 服務(wù)
app.factory("news", function () {
    
    return {
        data: "嘻嘻哈哈"
    }
    
});

service

面向?qū)ο髣?chuàng)建服務(wù)
參數(shù)1:服務(wù)名稱
參數(shù)2:服務(wù)的構(gòu)造函數(shù)(構(gòu)造函數(shù)中需要使用this來暴露接口)

// 使用 service 自定義服務(wù)
app.service("data", function () {
    
    this.title = "嘻嘻哈哈";
    
});
路由

使用組件配合使用:
angular-route.js
angular-ui-router.js
用來尋找頁面,通常通過配置一些路由來映射一些頁面

路由:就是URL到函數(shù)的映射

ngRoute

需要在程序入口處引入,添加到依賴集合中

angualr.module("app", ["ngRoute"]);

ng-view

動(dòng)態(tài)渲染的視圖,視圖如何渲染根據(jù)路由決定

渲染視圖需要在頁面初始化之前知道路由配置.
使用congfig();

congfig();
在應(yīng)用程序執(zhí)行之前執(zhí)行一個(gè)配置方法,在頁面還未被渲染,可以將路由邏輯放入該方法中。
回調(diào)函數(shù):
this -> window
默認(rèn)參數(shù)是空的,需要將服務(wù)注入

// 配置
app.config(function ( $routeProvider ) {

$routeProvider.when("/", {
    
    // 模板
// template: "
嘻嘻哈哈
", templateUrl: "a.html", // 控制器 controller: function ( $scope ) { console.log( $scope ); $scope.style = { color: "deeppink" } } });

$routeProvider
路由服務(wù):
路由供給服務(wù),提供一個(gè)when方法,供使用配置路由.

controller
在路由對(duì)象中,可以通過controller屬性,為路由對(duì)象添加控制器,創(chuàng)建一個(gè)作用域,讓模板可以使用作用域中的變量。

template
配置模板字符串

templateUrl
配置外部模板
會(huì)發(fā)送異步請(qǐng)求

otherwise
重定義路由
配置兩個(gè)路由以上,otherwise 才會(huì)有效果.
配置參數(shù)為 redirectTo 來重定向到不同路由,值是定義過路徑.

// app
var app = angular.module("app", ["ngRoute"]);

// controller
app.controller("routerCtrl", function ( $scope ) {
    
    $scope.shop = "shopPage1";
    
});

// config
app.config(function ( $routeProvider ) {
    
    // 配置首頁 路由  
    $routeProvider.when("/", {
        
        template: "

{{ index }}

", controller: function ( $scope ) { $scope.index = "indexPage"; } }) // 配置 shop 頁面 路由 .when("/shop", { template: "

{{ shop }}

", controller: function ( $scope ) { // $scope.shop = "shopPage"; } }) // 其它路由 重定義 到 / 目錄中 .otherwise({ redirectTo: "/" }); });

路由參數(shù)

路由路徑配置參數(shù)(參數(shù)名前需要加:冒號(hào))
將獲取路由參數(shù)服務(wù)注入控制器中($routeParams注入控制器中).

app.config(function ( $routeProvider ) {
    
    // 配置參數(shù)
    $routeProvider.when("/shop/:pageNum/:type", {
        
        template: "

{{ shop }}

", // 參數(shù)注入 controller: function ( $scope, $routeParams ) { $scope.shop = "shopPage"; console.log( $routeParams ); } }); });

路由時(shí)間
路由時(shí)間通常定義需要監(jiān)聽該事件的控制器中,在全局作用域下監(jiān)聽,通過對(duì)作用域$on()方法監(jiān)聽路由事件。
例如:$routeChangeSuccess
監(jiān)聽路由改變成功
參數(shù)1: 表示事件對(duì)象
參數(shù)2:表示當(dāng)前路由對(duì)象
參數(shù)3:表示前一個(gè)路由(如果當(dāng)前沒有前一個(gè)路由對(duì)象,因此參數(shù)會(huì)是undefined)

app.run(function ( $rootScope ) {
    
    $rootScope.$on("$routeChangeSuccess", function ( ev, routeObj, preRouteObj ) {
        
        
    });
    
});

$location
管理地址欄狀態(tài)信息,包括query,path
path(): 改變路由中的path.
讀:$location.path();
設(shè):$loction.path(arg);

app.run(function ( $rootScope, $location ) {
    
    $rootScope.$on("$routeChangeSuccess", function ( ev, routeObj, preRouteObj ) {
        
        // var q = $location.path(); // 讀
        
        $location.path("/xixi"); // 設(shè)置  
        
    });
    
});
ui-router

ngRoute: 每個(gè)頁面對(duì)應(yīng)一個(gè)地址(path), 需要渲染那個(gè)頁面,就需要配置路由.
uiRouter: 引入state(狀態(tài))概念,如果哪個(gè)頁面如果顯示,渲染出對(duì)應(yīng)的頁面,渲染之后會(huì)有一種狀態(tài),可以將該狀態(tài)記錄,配置路由

ui-view

在ui-router 中使用的指令ui

$stateProvider
參數(shù)注入到config()來定義狀態(tài)

app.config(function ( $stateProvider ) {});

state();
定義狀態(tài)
參數(shù)1:狀態(tài)名稱
參數(shù)2:配置參數(shù)
url: 狀態(tài)頁面的地址
tempate: 狀態(tài)對(duì)應(yīng)頁面的模板
controller 定義狀態(tài)對(duì)應(yīng)頁面的作用域

// 參數(shù)注入 ui.router
var app = angular.module("app", ["ui.router"]);

// 配置路由
app.config(function ( $stateProvider ) {

// $stateProvider 定義狀態(tài)
console.log( $stateProvider );

$stateProvider.state("home", {
    
    // 配置 #/
    url: "/",
    
    template: "

{{ indexPage }}

", controller: function ( $scope ) { $scope.indexPage = "indexPage"; console.log( this,arguments ); } }) .state("shop", { url: "/shop", template: "

{{ shopPage }}

", controller: function ( $scope ) { $scope.shopPage = "shopPage"; console.log( this,arguments ); } }) });

uiRouter路由參數(shù)規(guī)則
路由規(guī)則:

固定值:/key

可捕獲的參數(shù): /:key

限制字段類型: /{key:type} type: int,string

捕獲query: ?queryNum&queryNum2

$stateProvider.state("shop", {
    
    // url: "/shop/xixi/is/100?form=10&to=20"
    url: "/shop/:value/is/{pageNum:int}?form&to",
    
    template: "

{{ shopPage }}

", controller: function ( $scope, $stateParams ) { console.log( $stateParams ); $scope.shopPage = "shopPage"; } })

$urlRouterProvider
when(); 將參數(shù)1的路由路徑重定向到參數(shù)2路由路徑
otherwise(); 匹配不存在的路由,跳轉(zhuǎn)到定義過的路由.

// 配置 不存在路由    
$urlRouterProvider.when("", "/").otherwise("/error");

views 多視圖
ui-router 可以渲染頁面中的多個(gè)視圖,通過為頁面中ui-view指令添加名稱,多個(gè)視圖渲染需要在config() 配置。

app.config(function ( $stateProvider, $urlRouterProvider ) {

$stateProvider.state("home", {
    
    url: "/",
    
    views: {
        
        leftView: {
            
            template: "

leftView

" }, rightView: { template: "

rightView

" }, contentView: { template: "

contentView {{ msg }}

", controller: function ( $scope ) { $scope.msg = "中間模塊" } } } });

view 嵌套
在 ui-reouter 中視圖是可以嵌套。
在state() 定義狀態(tài)名稱的時(shí)候添加命名空間。
路由需要有順序,定義在父路由的后邊。
注意:父視圖需要添加動(dòng)態(tài)視圖ui-view
多視圖不能與嵌套視圖同時(shí)使用
匹配主頁,定義路徑不需要添加 "/shop", 直接 "shop";即可.

app.config(function ( $stateProvider, $urlRouterProvider ) {
    
    $stateProvider.state("home", {
        
        url: "/",
        
        template: "
index
" }) .state("home.shop", { url: "shop", template: "

shopPage

" }); $urlRouterProvider.when("","/"); });

路由事件
添加在全局作用域$rootScope 下檢測路徑變化
事件名以state開頭
參數(shù)1: 事件對(duì)象
參數(shù)2: 當(dāng)前路由對(duì)象
參數(shù)3: 當(dāng)前路由參數(shù)對(duì)象
參數(shù)4: 前一個(gè)路由對(duì)象
參數(shù)5: 前一個(gè)路由參數(shù)對(duì)象

app.run(function ( $rootScope ) {
    
    $rootScope.$on("$stateChangeSuccess", function ( ev, routeObj, routeParamsObj, preRouteObj, preRouteParamsObj ) {
        
        console.log( this,arguments );
        
    })
    
});

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/79920.html

相關(guān)文章

  • 【譯】《精通使用AngularJS開發(fā)Web App》(一) --- 相關(guān)背景、社區(qū)、工具介紹

    摘要:下一篇譯精通使用開發(fā)二原版書名第一章之道這一章主要是介紹,包括這個(gè)框架以及它背后的項(xiàng)目。幸運(yùn)的是,擁有一個(gè)活躍的,支持度高的社區(qū)。另外,社區(qū)還為已經(jīng)存在的工具箱里貢獻(xiàn)了許多有意思的工具。 下一篇:【譯】《精通使用AngularJS開發(fā)Web App》(二) 原版書名:Mastering Web Application Development with AngularJS Ch...

    ddongjian0000 評(píng)論0 收藏0
  • 【譯】《精通使用AngularJS開發(fā)Web App》(二) --- 框架概覽,雙向數(shù)據(jù)綁定,MVC

    摘要:本書的這一部分將為隨后的章節(jié)打下基礎(chǔ),會(huì)涵蓋模板,模塊化,和依賴注入。本書的小例子中我們會(huì)使用未經(jīng)壓縮的,開發(fā)友好的版本,在的上。作用域也可以針對(duì)特定的視圖來擴(kuò)展數(shù)據(jù)和特定的功能。 上一篇:【譯】《精通使用AngularJS開發(fā)Web App》(一) 下一篇:【譯】《精通使用AngularJS開發(fā)Web App》(三) 原版書名:Mastering Web Application D...

    geekidentity 評(píng)論0 收藏0
  • 【Angular】Angular 與 AngularJs 之間的糾纏不清

    摘要:在一段時(shí)間內(nèi),谷歌曾經(jīng)試圖默許使用這個(gè)新來包含已有的即也可以被成為,而僅稱為。隨著名稱混淆帶來的各種問題,之后谷歌開始重新強(qiáng)調(diào)使用框架正式名稱,即中的項(xiàng)目稱為,中的項(xiàng)目稱為。 Angular 與 AngularJs 之間的糾纏不清 showImg(https://segmentfault.com/img/remote/1460000017716109?w=815&h=512); 市場關(guān)...

    dadong 評(píng)論0 收藏0
  • Day 2: AngularJS —— 對(duì)AngularJS的初步認(rèn)識(shí)

    摘要:開始使用現(xiàn)在創(chuàng)建一個(gè)名為的文件,它將會(huì)是一個(gè)基于的網(wǎng)上書店應(yīng)用。這將初始化應(yīng)用程序,并告訴要在這一部分活躍。將為每個(gè)元素增加元素。控制器和視圖之間的粘合劑,而且會(huì)注入到。現(xiàn)在我們添加書籍?dāng)?shù)組的對(duì)象到對(duì)象,這個(gè)對(duì)象對(duì)視圖是可見的。 編者注:我們發(fā)現(xiàn)了比較有趣的系列文章《30天學(xué)習(xí)30種新技術(shù)》,準(zhǔn)備翻譯,一天一篇更新,年終禮包。以下是第二天技術(shù)的譯文。 昨晚我完爆了一天一技術(shù)的任務(wù)...

    joyqi 評(píng)論0 收藏0
  • AngularJS簡述

    流行框架 簡介 angularjs是一款非常優(yōu)秀的前端高級(jí)JS框架,由谷歌團(tuán)隊(duì)開發(fā)維護(hù),能夠快速構(gòu)建單頁web應(yīng)用,化繁為簡 無論是angularjs還是jQuery都是用原生JS封裝的 庫:對(duì)代碼進(jìn)行封裝,調(diào)用封裝的方法,簡化操作 傳統(tǒng)方式是用get方式獲取元素,然后點(diǎn)方法 jQuery庫實(shí)現(xiàn)了對(duì)獲取方式的封裝,對(duì)方法的封裝 框架:提供代碼書寫規(guī)則,按照規(guī)則去寫代碼,框架會(huì)幫我們實(shí)現(xiàn)響應(yīng)的功能...

    Jason 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

sf190404

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<