1. 程式人生 > >AngularJS(二)——AngularJS主要內容

AngularJS(二)——AngularJS主要內容

一、雙向資料繫結

        傳統來說,從model中獲取資料,然後手動獲取更新到view中。AngularJS是自動更新。用例子簡單說明:

<span style="font-size:18px;"><!doctypehtml>
<htmlng-app>
  <head>
    <scriptsrc="js/angular-1.3.0.js"></script>
  </head>
  <body>
    <div>
      <label>NAME:</label>
      <input type="text"ng-model="yourName" placeholder="Enter a name here">
      <hr>
      <h1>Hello, {{yourName}}!</h1>
    </div>
  </body>
</html></span>

效果是:

 

你在文字框中輸入什麼,Hello後邊就出來什麼,不用自己再去從文字框取值,然後更新到下邊。

二、模組

        在JavaScript中,將函式程式碼全部都定義在全域性名稱空間中絕對不是什麼好主意, 這樣做會導致衝突從而使除錯變得非常困難,浪費寶貴的開發時間。

        在AngularJS中我們把它封裝在模組(module)中單元內,模組是定義應用的最主要方式。模組包含了主要的應用程式碼。一個應用可以包含多個模組,每一個模組都包含了定義具體功能的程式碼。

        使用模組的好處:

                保持全域性名稱空間的清潔;

                編寫測試程式碼更容易,並能保持其清潔,以便更容易找到互相隔離的功能;

                易於在不同應用間複用程式碼;

                使應用能夠以任意順序載入程式碼的各個部分。

        AngularJS允許我們使用 angular.module() 方法來宣告模組,這個方法能夠接受兩個引數,第一個是模組的名稱,第二個是依賴列表,也就是可以被注入到模組中的物件列表。

         angular.module('myApp', []);

        // 這個方法用於獲取應用

        angular.module('myApp')

三、MVC

        為什麼需要MVC?

              程式碼規模越來越大,切分職責是大勢所趨

              為了複用:很多邏輯都是一樣的,

              為了後期維護:修改一塊功能不影響其它功能

MVC只是手段,終極目標是模組化和複用

 

上篇部落格中“Hello World”例子已經說明。這裡就不再舉例。

四、依賴注入

       一個物件通常有三種方式可以獲得對其依賴的控制權:

             (1) 在內部建立依賴;

             (2) 通過全域性變數進行引用;

             (3) 在需要的地方通過引數進行傳遞。

       angularJS依賴注入是通過第三種方式實現的。

       從功能上看,依賴注入會事先自動查詢依賴關係,並將注入目標告知被依賴的資源,這樣就可以在目標需要時立即將資源注入進去

實現小例子:

html

<span style="font-size:18px;"><!doctypehtml>
<head>
    <meta charset="utf-8">
    <scriptsrc="js/angular-1.3.0.js"></script>
    <scriptsrc="yilaizhuru.js"></script>
</head>
<div ng-app="myApp">
       <div ng-controller="MyController">
              <buttonng-click="sayHello()">Hello</button>
       </div>
</div></span>


js

<span style="font-size:18px;">angular.module('myApp',[])
       .factory('greeter', function() {
              return {
                     greet: function(msg){alert(msg);}
       }
})
.controller('MyController',
       function($scope, greeter) {
              $scope.sayHello = function() {
                     greeter.greet("Hello!");
       };
});</span>


效果圖:

 

五、指令

常用指令:

ng-app - 該指令啟動一個AngularJS應用。

ng-init - 該指令初始化應用程式資料。

ng-model - 此指令定義的模型,該模型是變數在AngularJS使用。

ng-repeat - 該指令將重複集合中的每個專案的HTML元素。

根據自己的需求可以自定義指令,以後會詳解。

總結

        以上寫的東西只是各部分的隻言片語,下來會詳細介紹。