AngularJS變數及過濾器Filter用法分析_AngularJS

來源:互聯網
上載者:User

本文執行個體講述了AngularJS變數及過濾器Filter用法。分享給大家供大家參考,具體如下:

1. 關於部分變數的操作

設定變數:

ng-init="hour=14" //設定hour變數在DOM中 使用data-ng-init 更好些$scope.hour = 14; //設定hour變數在js中

使用變數:

(1) 如果是在DOM 相關的 ng-*** 屬性裡 直接寫變數名

如:

<p ng-show="hour > 13">I am visible.</p>

(2) 如果是在控制器HTML 中但是不在 ng屬性裡

使用{{變數名}}

如:

{{hour}}

(3) 當然第三種就是上面的 在js中使用

加上對象名 $scope.

$scope.hour

(4) 在表單控制項中 ng-model中的變數 可以直接

同時在 html 中 使用 {{變數名}}

<p>Name: <input type="text" ng-model="name"></p><p>You wrote: {{ name }}</p>

還可以通過 ng-bind 屬性進行變數綁定

<p>Name: <input type="text" ng-model="name"></p><p ng-bind="name"></p>

(5) 可以直接在ng的屬性 或變數中使用運算式

會自動幫你計算 需要符合js文法

ng-show="true?false:true"{{5+6}}<div ng-app="" ng-init="points=[1,15,19,2,40]">  <p>The third result is <span ng-bind="points[2]"></span></p></div>

2. js中的變數迴圈

<div ng-app="" ng-init="names=['Jani','Hege','Kai']"> <ul>  <li ng-repeat="x in names">   {{ x }}  </li> </ul></div>

3.變數的過濾 filter

Filter         Description
currency    以金融格式格式化數字
filter          選擇從一個數組項中過濾留下子集。
lowercase   小寫
orderBy     通過運算式將數組排序
uppercase   大寫

如:

<p>The name is {{ lastName | uppercase }}</p>

當然多個函數封裝可以使用 |

<p>The name is {{ lastName | uppercase | lowercase }}</p>//排序函數的使用<ul> <li ng-repeat="x in names | orderBy:'country'">  {{ x.name + ', ' + x.country }} </li></ul>//通過輸入內容自動過濾顯示結果<div ng-app="" ng-controller="namesCtrl">  <p><input type="text" ng-model="test"></p>  <ul>   <li ng-repeat="x in names | filter:test | orderBy:'country'">    {{ (x.name | uppercase) + ', ' + x.country }}   </li>  </ul></div>

names | filter:test | orderBy:'country'
就是將names數組中的項 按照 test表單值進行 篩選
然後以 names中的子項目 country 進行排序

自訂過濾器:

<!DOCTYPE html><html ng-app="HelloApp"><head><title></title></head><body ng-controller="HelloCtrl"> <form>   <input type="text" ng-model="name"/> </form> <div>{{name|titlecase}}</div> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <script type="text/javascript">  // 編寫過濾器模組  angular.module('CustomFilterModule', [])      .filter( 'titlecase', function() {    return function( input ) {      return input.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});  }  });  // 實際展示模組  // 引入依賴的過濾器模組 CustomFilterModule  angular.module('HelloApp', [ 'CustomFilterModule'])    .controller('HelloCtrl', ['$scope', function($scope){    $scope.name = '';  }])</script></body></html>

希望本文所述對大家AngularJS程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.