angular入門

angular.js 1.3.10

mvvm, 也叫作mvc, 谷歌在推廣這個(gè)框架, 主要致力于解決ajax開(kāi)發(fā)過(guò)程中帶來(lái)的痛苦; 建議放到服務(wù)器環(huán)境下;

  1. 改變this的指向:
function show(){
    alert(this);
}
show();//window;

var c = angular.bind(21, show);
c();//21;

//傳參:
var c = angular.bind(12, show, 'abc', 'def');

angular.bind(this指向誰(shuí), 函數(shù)名, 參數(shù)1, 參數(shù)2, 參數(shù)```);
  1. copy
var arr1 = [1,2,3];
var arr2 = [];

angular.copy(arr1, arr2);
angular.copy(克隆誰(shuí), 克隆到哪里去);
console.log(arr2);
  1. angular.element: angular中的dom操作;類似于window.onload
    angular.element(document).ready(function(){
        alert('1');
    });

    angular.element(document).ready(function(){
        var oDiv = document.getElementById('div1');
        angular.element(oDiv).on('clcik', function(){
            angualr.element(this).css('background', 'red')
        });
    });

  1. equals(); 比較兩個(gè)元素是否相等;
var arr1 = [1,2,3,4];
var arr2 = [1,2,3,4];

alert(angular.equals(arr1, arr2));//true,

angular 對(duì)比過(guò)后NaN 和NaN 相等;
  1. forEach(): 循環(huán), 可以循環(huán)數(shù)組和json
var arr = ['a', 'b', 'c', 'd'];
angular.forEach(arr, function(v, k){
    console.log('v', 'k')//v==>元素   k===>下標(biāo)
});

angular.forEach(循環(huán)誰(shuí), fn(v, k));
  1. isArray(); isDate();
var oDate = new Date();
alert(angular.isDate(oDate));
  1. lowercase(); uppercase();

  2. angular命名空間: ng-開(kāi)頭;

  3. 第一個(gè)程序:
    天生就產(chǎn)生數(shù)據(jù)的元素: input類, ng-model="name"; 數(shù)據(jù)名稱;
    展示數(shù)據(jù): {{name}}

    <div ng-app> ng-app: 開(kāi)啟angular的應(yīng)用模式;
        <input type="text" value="" ng-model='a' />
        {{a}}
    </div>

指令(directive): 指令以ng-開(kāi)頭, 擴(kuò)展HTML語(yǔ)法;

  • ng-app
  • ng-init
  • ng-bind
  • ng-model
  • ng-show
  1. ng-app一個(gè)頁(yè)面只能有一個(gè);所以一般都加給HTML

  2. 另一種展示數(shù)據(jù)的方式: ng-bind="數(shù)據(jù)名稱"; 數(shù)據(jù)出錯(cuò)不會(huì)展示模板標(biāo)記;

  <div ng-app> ng-app: 開(kāi)啟angular的應(yīng)用模式;
          <input type="text" value="" ng-model='a' />
          {{a}}
          <strong ng-bind="a"></strong>
      </div>
  1. ng-init: 初始化數(shù)據(jù), 針對(duì)非input類標(biāo)簽;
<div ng-init="a=12">
    {{a}}
</div>
<div ng-init="arr=['a', 'b', 'c', 'd']">
    {{arr}}
</div>
  1. ng-show="true/false" ng-hide="true/false"
<div ng-show="true/fasle" style="width: 100px; height: 100px; background: red;"></div>

<input type="checkbox" ng-model="a" />
{{a}}
<div ng-show="a" stylw="width: 100px; height:100px; background: red;"></div>
  1. ng-click: 點(diǎn)擊
<div ng-init="a=false">
<input type="button" value="按鈕" ng-click="a=!a" />
<div id="div1" ng-show="a"></div>
</div>
  1. ng-repeat: 循環(huán)
    <div ng-init="arr=['a', 'c', 'b', 'd']">
        <ul>
            <li ng-repeat="val in arr">{{val}}</li>
        </ul>
    </div>

    <div ng-init="arr=['a', 'c', 'b', 'd']">
    <input type="button" ng-click="arr.push('123')" />
            <ul>
                <li ng-repeat="val in arr">{{val}}</li>
            </ul>
        </div>

控制器: controller, 依賴注入, 雙向數(shù)據(jù)綁定;

依賴注入:
<input type="text" ng-model="a">
<input type="text" ng-model="a">
雙向數(shù)據(jù)綁定: 函數(shù)傳參, 名字定死, 跟順序無(wú)關(guān);

  • 定義控制器: function show($scope){$scope.a=12}
  • <div ng-controller="show"></div>
// angular.module(模塊名, [依賴的模塊], fn[配置函數(shù)]);
<html ng-app="app" lang="en">
var app = angular.module('mk', []);
//app.controller(控制器的名稱, fn)
app.controller('show', function($scope){
    $scope.a = 12;
});
<div ng-controller="show">{{a}}</div>

多個(gè)控制器: 可以繼承, 繼承看DOM結(jié)構(gòu), 也可以進(jìn)行數(shù)據(jù)的傳遞

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

app.controller('show1', function($scope){
    $scope.a = 12;
});

app.controller('show2', function($scope){
    $scope.a = 23;
})

//use:1
<div ng-controller="show1">
    {{a}}
</div>
<div ng-controller="show2">
    {{a}}
</div>

//use:2
<div ng-controller="show1">
    {{a}}
    <div ng-controller="show2">
        {{a}}
    </div>
</div>

多個(gè)控制器之間的數(shù)據(jù)傳遞:
  1. 子級(jí)傳遞給父級(jí):
    傳遞: $emit(發(fā)生的數(shù)據(jù)名稱, 發(fā)射的數(shù)據(jù)),
    接收: $on()
  2. 父級(jí)傳遞給子級(jí):
    傳遞:
    接收: $on
var app = angular.module('mk', []);
app.controller('ctrl1', function($scope){
    <!-- $scope.a =0; -->
    $scope.$on('data', function(event, data){
        $scope.a = data+1;
    })
});

app.controller('ctrl2', function($scope){
    $scope.c = function(){
       alert($scope.aaa);
       $scope.$emit('data', $scope.aaa);
    };
})

<div ng-controller="ctrl1">
    父級(jí)的: {{a}}
    <div ng-controller="ctrl2">
        <input type="number" ng-model="aaa" ng-change="c()"/> <br/>
        {载矿}
    </div>
</div>
var app = angular.module('mk', []);
app.controller('ctrl1', function($scope){
    <!-- $scope.a =0; -->
    $scope.$on('data', function(event, data){
        $scope.a = data+1;
        //把數(shù)據(jù)給子級(jí):
        $scope.$broadcast('newdata', data);
    })
});

app.controller('ctrl2', function($scope){
    $scope.c = function(){
       alert($scope.aaa);
       $scope.$emit('data', $scope.aaa);
    };
})

app.controller('ccc', function($scope){
    $scope.$on('new-data', function(event, data){
        $scope.aaa = data - 1;
    });
});

<div ng-controller="ctrl1">
    父級(jí)的: {{a}}
    <div ng-controller="ctrl2">
        <input type="number" ng-model="aaa" ng-change="c()"/> <br/>
        <div ng-controller="ccc">{{aaa}}</div>
    </div>
</div>

數(shù)據(jù)臟檢查: 數(shù)據(jù)更改了, 但是視圖沒(méi)有更改;

var app = angular.module('mk', []);
app.controller('ctrl', functin($scope){
    $scope.a =1;

    //1
    setTimeout(function(){
        $scope.a = 12;
    }, 1000);

    //2
    setTimeout(function(){
        $scope.$apply(function(){
            $scope.a = 12;
        });
    });

});

//3.
app.controller('ctrl', function($scope, $timeout){
    $scope.a = 2;
    $timeout(function(){
        $scpe.a = 3;
    });
});

<div ng-controller="ctrl">
    {{a}}
</div>

控制器中注入的都是服務(wù)[service]:

  • $scope,
  • $timeout
  • $interval
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拖叙,一起剝皮案震驚了整個(gè)濱河市戳晌,隨后出現(xiàn)的幾起案子起宽,更是在濱河造成了極大的恐慌扇苞,老刑警劉巖钟些,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饿肺,死亡現(xiàn)場(chǎng)離奇詭異勺阐,居然都是意外死亡卷中,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門渊抽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蟆豫,“玉大人,你說(shuō)我怎么就攤上這事懒闷∈酰” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵愤估,是天一觀的道長(zhǎng)帮辟。 經(jīng)常有香客問(wèn)我,道長(zhǎng)玩焰,這世上最難降的妖魔是什么由驹? 我笑而不...
    開(kāi)封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮昔园,結(jié)果婚禮上蔓榄,老公的妹妹穿的比我還像新娘。我一直安慰自己默刚,他們只是感情好甥郑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著荤西,像睡著了一般澜搅。 火紅的嫁衣襯著肌膚如雪伍俘。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天勉躺,我揣著相機(jī)與錄音养篓,去河邊找鬼。 笑死赂蕴,一個(gè)胖子當(dāng)著我的面吹牛柳弄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播概说,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼碧注,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了糖赔?” 一聲冷哼從身側(cè)響起萍丐,我...
    開(kāi)封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎放典,沒(méi)想到半個(gè)月后逝变,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奋构,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年壳影,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弥臼。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡忙芒,死狀恐怖胰苏,靈堂內(nèi)的尸體忽然破棺而出低千,到底是詐尸還是另有隱情姜胖,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布纳猪,位于F島的核電站氧卧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏氏堤。R本人自食惡果不足惜沙绝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望丽猬。 院中可真熱鬧宿饱,春花似錦、人聲如沸脚祟。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)由桌。三九已至为黎,卻和暖如春邮丰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背铭乾。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工剪廉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炕檩。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓斗蒋,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親笛质。 傳聞我的和親對(duì)象是個(gè)殘疾皇子泉沾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • ——致LL 在我的小城里 藤蔓覆蓋鋼鐵森林 空氣溢滿泥土春息 一片生機(jī) 茵茵綠意 花兒鳥(niǎo)兒都在天空里 紛飛芳華,遺...
    喵咪先生T閱讀 201評(píng)論 0 0
  • 我覺(jué)得我應(yīng)該再調(diào)整一下早起的時(shí)間讓晨間日記盡量在早起的這段時(shí)間完成妇押。 當(dāng)我們自己心情平和的時(shí)候孩子也會(huì)隨之平和跷究。昨...
    何仙姑的胭脂水粉閱讀 195評(píng)論 1 0