Angular筆記1

引入一個 anjular.js 文件javascript

1.經過 ng-app 指令啓動AnjularJS ,指定HTML中,哪一部分歸AnjularJS控制。 這條語句置於<html>標籤表明AnjularJS可以控制整個HTML應用。  也能夠放在<body>或其餘元素上,該元素的全部子節點都處於AnjularJS的控制下,其他部分則不會。html

2.<input> 調用ng-model="name". ng-model 指令能夠用於輸入控件中,獲取<input>輸入框的值,並存儲傳入給一個叫name的變量。java

3.另外一個指令叫ng-bind。該指令與花括號表達式是能夠互換,{{name}}來替換                            <span ng-bind="name"></span>。這兩種寫法將name變量的值放於標籤內,當name值發生變化,其綁定的組件<span>的值也會更新。jquery

<!DOCTYPE html>
<html ng-app>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="js/angular.min.js"></script>
    </head>
    <body>
        <input type="text" ng-model="name" placeholder="enter your name" />
        <h1>hello <span ng-bind="name"></span></h1>
        <!--<h1>hello <span>{{ name}}</span></h1>-->
        <h2>hellow{{1+2}}</h2>
    </body>
</html>

二. AnjularJS模塊數組

AnjularJS將相關代碼封裝起來,經過某種命名方式進行調用,可理解爲java中的package服務器

一個AnjularJS模塊包含兩部分:app

1.模塊能夠本身定義控制器,指令......這些代碼和函數在整個模塊中均可以訪問到。函數

2.模塊能夠依賴其餘模塊this

3.經過將模塊名稱傳給ng-app指令來告訴AnjularJS應用入口在哪裏spa

 

定義一個不依賴其餘模塊的方式,該模塊名稱爲notesApp:

anjular.module('notesApp',[]);  第一個參數表明模塊名稱,第二個參數是數組,表明該模塊所依賴的名稱列表,(空數組表明所建立的模塊不依賴任何其餘模塊)

<!DOCTYPE html>
<html ng-app="notesApp">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="js/angular.min.js"></script>
        <script>
            angular.module('notesApp',[]);
        </script>
    </head>
    <body>
        hello {{1+1}}nd time Angularjs
    </body>
</html>
 

 hello 2nd time Angularjs

注:   angular.module('notesApp',[]);可放在下面,但放在document.ready(functions())中很差用

 

三.如何定義控制器

3.1以上模塊爲空的,沒有功能

控制器包攬了Anjularjs中得雜活,經過javascript函數來執行或觸發與UI相關的任務。

AnjularJS控制器的主要職責有

1.從服務器獲取所需數據,以生成頁面UI.

2.決定哪些數據會被呈現給用戶

3.一些與頁面相關的邏輯

4.用戶交互,好比響應用戶單擊事件以及驗證文本輸入框中的值

AnjularJs控制器一般和某個HTML視圖直接關聯。

 

3.2 controller函數定義了一個控制器,他對於AnjularJS中的某個模塊是可見的,  

controller的第一個參數爲控制器的名稱(MainCtrl).

第二個參數是一個數組,數組以字符串格式包含了控制器所依賴的模塊名稱

數組的最後那個參數爲真正的控制函數。下面的例子中無依賴關係

 

3.3 ng-controller=」MainCtrl「, 讓AnjularJS經過名稱建立出控制器實例,而後將它關聯到DOM元素中。

本例中指令會加載MainCtrl控制器,任務爲打印console.log()中內容。

<!DOCTYPE html>
<html ng-app="notesApp">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="js/angular.min.js"></script>
        <script src="js/jquery-3.1.1.min.js"></script>
    </head>
    
    <body ng-controller="MainCtrl">
        hello {{1+1}} nd time AnjularJs
        
    <script>
        angular.module('notesApp',[]).controller('MainCtrl', [function(){
            //此處爲與控制器相關的代碼
            console.log("MainCtrl has been created")
        }]);
        
    </script>
    </body>
</html>
 

四.將顯示的信息從HTML移到控制器中,而後經過控制器來顯示它

<!DOCTYPE html>
<html ng-app="notesApp">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="js/angular.min.js"></script>
        <script src="js/jquery-3.1.1.min.js"></script>
    </head>
    <body ng-controller="MainCtrl as ctrl">
        {{ctrl.helloMsg}} AngularJS<br />
        {{ctrl.goodbyMes}} AngularJS
        <script>
            angular.module('notesApp',[]).controller('MainCtrl',[function(){
                this.helloMsg='hello';
                var goodbyMes='Goodby';
            }])
        </script>
    </body>
</html>

 

五,爲控制器添加函數

<!DOCTYPE html>
<html ng-app="notesApp">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="js/angular.min.js"></script>
        <script src="js/jquery-3.1.1.min.js"></script>
    </head>
    <body ng-controller="MainCtrl as ctrl">
        {{ctrl.message}}
        <button ng-click="ctrl.changeMessage()">change Message</button>
        <script>
 1.      angular.module('notesApp',[]).controller("MainCtrl",[function(){
             var self=this;
             self.message='hello';
             self.changeMessage=function(){
                 self.message='Goodbye';
             }
         }])
        </script>
    </body>
</html>

 

 

1.定義一個名爲  notesApp 的模塊

2.建立一個名爲MainCtrl的控制器來控制模塊

3.定義一個self變量指向控制器實例,而不是直接調用this關鍵字。

4.綁定變量self.message  ,可在HTML中訪問

5.添加方法,改變 self.message的值

6.添加按鈕,內嵌ng-click指令, 將處理事件的函數做爲參數傳給指令。

注:當用戶點擊按鈕時changeMessage函數會自動觸發,不須要通知UI(AnjularJS宗旨之一由數據驅動)

相關文章
相關標籤/搜索