Angular雙向數據綁定MVVM以及基本模式分析

MVVM:html

angular的MVVM實現的是雙向數據綁定,模型從服務器端抓取到數據,將數據經過控制器(controller)傳遞到視圖(view)顯示,視圖數據發生變化時一樣也會影響到模型數據的變化,這既是雙向數據綁定。gulp

$scope即是視圖模型,controller的做用即是view與model之間的橋樑(紐帶)。服務器

 

基本模式分析:app

 1  <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4    <meta charset="UTF-8">
 5     <title>test</title>
 6  </head>
 7  <body ng-app="app">    <!-- angular模塊 -->
 8  <p ng-controller="myCtr">{{msg}}</p>   <!-- angular控制器 -->
 9  </div>
10  <script src="angular.min.js"></script>
11  <script>
12  var m = angular.module("app", []);                  //加載angular模塊,[]表示有其餘模塊須要加載時纔會用到
13  m.controller("myCtr", ["$scope", function($scope){  //定義控制器   推薦使用這種寫法,縮後不易出現問題
14     $scope.msg="lol";
15  }]);
16  </script>
17  </body>
18  </html>

注意上述代碼,每一句都有加分號,是由於在代碼經過gulp壓縮後,代碼會連在一塊兒,若不加分號,壓縮後就沒法正常運行了spa

對比下面的寫法:code

1 var m = angular.module("app", []); //加載angular模塊,[]表示有其餘模塊須要加載時纔會用到
2  m.controller("myCtr", function($scope){ //定義控制器  不建議使用這種寫法
3     $scope.msg="lol";
4  });

這種寫法是比較精簡,可是代碼壓縮後,形式參數$scope會變成單個字母,如"a"等,這樣代碼就不能正常運行了,而上面的第一種寫法,能夠正常運行,因此建議寫成第一種htm

1 angular.module("app", []).controller("myCtr",["$scope", function(a){a.msg="lol";}]); //能夠正常運行
2 angular.module("app", []).controller("myCtr", function(a){a.msg="lol"; });            //不能正常運行

因此綜上所訴,代碼書寫注意規範且加 「;」,這樣代碼在壓縮後就不會出現問題了。blog

相關文章
相關標籤/搜索