AngularJS學習筆記(二)

AngularJS $http    請求數據
    get請求
   
<div ng-app="" ng-controller="customersController">
    <ul>
      <li ng-repeat="x in names">
           {{x.Name+','+x.Country}}
      </li>
     <ul>
    </div>
    <script>
     function customersController($scope,$http){
    $http.get("http://www.w3cschool.cc/rty/angularjs/data/customers_JSON.php")
.success(function(response){$scope.names=response;});
    }
</script>
 
$http get 實例1:
  
$http.get("http://www.w3cschool.cc/try/angularjs/data/Customers_JSON.php").success(function(response){$scope.names=response;});


$http get 實例2:

 $http.get(url,{params:{id:'5'}}).success(function(response){
   $scope.names=response;}).error(function(data){//錯誤代碼});



$http post 實例:

var postData={text:'這是post的內容'};
     var config={params:{id:'5'}}
    $http.post(url,postData,config).success(function(response){
       $scope.names=response;   
   }).error(function(data){//錯誤代碼});

 $http Jsonp實例:

myUrl
"http://www.phonegap100.com/appapi.php?a=getPortalList=20&page=1&callback=JSON_CALLBACK";
   $http.jsonp(myUrl).success(
    function(data){
   $scope.portalcate=data.result;
    }
).error(function(){alert('shibai');});

AngularJS 過濾器
  AngularJS過濾器
  AngularJS過濾器可以用於轉換數據:
  
currency 格式化數字爲貨幣格式
filter 從數組項中選擇一個子集
lowercase 格式化字符串爲小寫
orderBy 根據某個表達式排列數組
uppercase 格式化字符串爲大寫


向表達式添加過濾器
   過濾器可以通過一個管道字符(|)和一個過濾器添加到表達式中。
  (下面的兩個實例,我們將使用前面章節中提到的person控制器)
 uppercase過濾器格式化字符串爲大寫:

 <div ng-app="" ng-controller="personController">
   <p>姓名爲 {{person.lastName|uppercase}} </p>
   </div>

lowercase過濾器格式化字符串爲小寫:

<div ng-app="" ng-controller="personController">
    <p>姓名爲 {{ person.lastName | lowercase }} </p>
</div>

currency 過濾器
currency過濾器格式化數字爲貨幣格式

<div ng-app="" ng-controller="costController">
數量:<input type="number" ng-model="quantity">
價格:<input type="number" ng-model="price">
<p>總價:={{ (quantity*price) | currency }}</p>
</div>


向指令添加過濾器
過濾器可以通過一個管道字符(|)和一個過濾器添加到指令中。
orderBy過濾器根據某個表達式排列數組:
<div ng-app="" ng-controller="namesController">
<p>循環對象:</p>
   <ul>
    <li ng-repeat="x in names | orderBy:'country'">
     {{x.name+','+x.country}}
    </li>
   </ul>
</div>

過濾輸入
輸入過濾器可以通過一個管道字符(|)和一個過濾器添加到指令中,該過濾器後跟一個冒號和一個模型名稱。
filter過濾器從數組中選擇一個子集:
  

div ng-app="" ng-controller="namesController">
<p>輸入過濾:</p>
<p><input type="text" ng-model="name"></p>
<ul>
  <li ng-repeat="x in names | filter:name | orderBy:'country'">
  {{ (x.name | uppercase ) + ',' + x.country }}
  </li>
</ul>
</div> 


AngularJS 模塊
爲什麼要使用模塊
控制器污染了全局命名空間
本教程中運用大量全局函數 而在應用中應儘量避免使用全局變量和全局函數。
全局值(變量或函數)可被其他腳本重寫或破壞。
爲了解決這個問題,AngularJS使用了模塊。


AngularJS 普通的控制器和 模塊 對比

AngularJS普通的控制器

<!doctype html>
<html>




<body>
<div ng-app="" ng-controller="myCtrl">
{{ firstName+" "+lastName }}
</div>
<script>
function myCtrl($scope){
  $scope.firstName="John";
  $scope.lastName="Doe";
}
</script>
<script src="angular.min.js"></script>
</body>
</html>



使用一個由模塊代替的控制器

<!doctype html>
<html>
<head>
<script src="angular.min.js"></script>
<head>

<body>
<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName+" "+lastName }}
</div>
<script>
var app=angular.module("myApp",[]);
app.controller("myCtrl",function($scope){
$scope.firstName="John";
$scope.lastName="Doe";});

</script>
</body>
</html>



AngularJS應用程序文件
現在知道模塊是怎麼工作的了,現在可以創建自己的程序文件,
應用程序文件中應至少有一個模塊文件,一個控制器文件
首先,創建模塊文件“myApp.js”
  var app=angular.module("myApp",[]);
然後,創建控制器文件,本例中是"myCtrl.js":
  app.controller("myCtrl",function($scope){
   $scope.firstName="John";
   $scope.lastName="Doe";
});
最後,編輯HTML引入模塊:
 <!doctype html>
 <html>
 <body>
 <div ng-app="myApp" ng-controller="myCtrl">
 {{ firstName + "" + lastName}}
</div>
<script src="angular.min.js"></script>
<script src="myCtrl.js"></script>
</body>
</html>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章