国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

AngularJS入門教程之過濾器詳解

2019-11-20 09:12:14
字體:
來源:轉載
供稿:網友

在這一步你將學習到如何創建自己的顯示過濾器。

請重置工作目錄:

git checkout -f step-9

現在轉到一個手機詳細信息頁面。在上一步,手機詳細頁面顯示“true”或者“false”來說明某個手機是否具有特定的特性。現在我們使用一個定制的過濾器來把那些文本串圖形化:√作為“true”;以及×作為“false”。來讓我們看看過濾器代碼長什么樣子。

步驟8和步驟9之間最重要的不同在下面列出。你可以在GitHub里看到完整的差別。

定制過濾器

為了創建一個新的過濾器,先創建一個phonecatFilters模塊,并且將定制的過濾器注冊給這個模塊。

app/js/filters.js

angular.module('phonecatFilters', []).filter('checkmark', function() { return function(input) {  return input ? '/u2713' : '/u2718'; };});

我們的過濾器命名為checkmark。它的輸入要么是true,要么是false,并且我們返回兩個表示true或false的unicode字符(/u2713和/u2718)。

現在我們的過濾器準備好了,我們需要將我們的phonecatFilters模塊作為一個依賴注冊到我們的主模塊phonecat上。

app/js/app/js

...angular.module('phonecat', ['phonecatFilters'])....

模板

由于我們的模板代碼寫在app/js/filter.js文件中,所以我們需要在布局模板中引入這個文件。

app/index.html

... <script src="js/controllers.js"></script> <script src="js/filters.js"></script>...

在AngularJS模板中使用過濾器的語法是:

{{ expression | filter }}

我們把過濾器應用到手機詳細信息模板中:

app/partials/phone-detail.html

...  <dl>   <dt>Infrared</dt>   <dd>{{phone.connectivity.infrared | checkmark}}</dd>   <dt>GPS</dt>   <dd>{{phone.connectivity.gps | checkmark}}</dd>  </dl>...

測試

過濾器和其他組件一樣,應該被測試,并且這些測試實際上很容易完成。

test/unit/filtersSpec.js

describe('filter', function() { beforeEach(module('phonecatFilters')); describe('checkmark', function() {  it('should convert boolean values to unicode checkmark or cross',    inject(function(checkmarkFilter) {   expect(checkmarkFilter(true)).toBe('/u2713');   expect(checkmarkFilter(false)).toBe('/u2718');  })); });});

注意在執行任何過濾器測試之前,你需要為phonecatFilters模塊配置我們的測試注入器。

執行./scripts/test/sh運行測試,你應該會看到如下的輸出:

Chrome: Runner reset.....Total 4 tests (Passed: 4; Fails: 0; Errors: 0) (3.00 ms) Chrome 19.0.1084.36 Mac OS: Run 4 tests (Passed: 4; Fails: 0; Errors 0) (3.00 ms)

現在讓我們來練習一下AngularJS內置過濾器,在index.html中加入如下綁定:

  1. {{ "lower cap string" | uppercase }}
  2. {{ {foo: "bar", baz: 23} | json }}
  3. {{ 1304375948024 | date }}
  4. {{ 1304375948024 | date:"MM/dd/yyyy @ h:mma" }}

我們也可以用一個輸入框來創建一個模型,并且將之與一個過濾后的綁定結合在一起。在index.html中加入如下代碼:

<input ng-model="userInput"> Uppercased: {{ userInput | uppercase }}

總結

現在你已經知道了如何編寫和測試一個定制化插件,在步驟10中我們會學習如何用AngularJS繼續豐富我們的手機詳細信息頁面。

以上就是對AngularJS 過濾器的資料整理,后續繼續補充相關資料,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 象山县| 获嘉县| 锡林浩特市| 陇南市| 临沧市| 娱乐| 怀来县| 丹江口市| 垣曲县| 莱芜市| 仁寿县| 雅安市| 尼勒克县| 博湖县| 鸡泽县| 临潭县| 龙胜| 银川市| 砀山县| 乐清市| 张掖市| 奉新县| 历史| 平顺县| 株洲县| 清原| 牡丹江市| 雷州市| 科尔| 万盛区| 西昌市| 清徐县| 三门县| 翁牛特旗| 东城区| 勐海县| 岳西县| 和龙市| 莎车县| 宁晋县| 高阳县|