AngularJS_AngularJS のカスタム フィルターの詳細な説明
フィルターはその名のとおり、入力を受け取り、それを一定の規則に従って処理し、処理された結果を返すものです。これは主に、配列のサブセットの取得、配列内の要素の並べ替えなど、データの書式設定に使用されます。 ng にはいくつかの組み込みフィルターがあります。それらは次のとおりです:currency (通貨)、date (日付)、filter (部分文字列一致)、json (フォーマットされた JSON オブジェクト)、limitTo (制限数値)、小文字 (小文字)、大文字 (大文字) 、number (数値)、orderBy (並べ替え)。全部で9種類。さらに、フィルターをカスタマイズすることもできます。これは強力で、あらゆるデータ処理要件を満たすことができます。
AngularJS はいくつかの組み込みフィルターを提供します。カスタム フィルターのシナリオをいくつか示します。
パラメーターなしのカスタムフィルター
//过滤 不带参数 app.filter('ordinal', function () { return function (number) { if (isNaN(number) || number < 1) { return number; } else { var lastDigit = number % 10; if (lastDigit === 1) { return number + 'st' } else if (lastDigit === 2) { return number + 'nd' } else if (lastDigit === 3) { return number + 'rd' } else if (lastDigit > 3) { return number + 'th' } } } });
大まかに次のように使用されます:
{{777 | 序数}}
パラメータによるフィルタリング
特定の位置にある文字を大文字に変換します。
//过滤 带参数 app.filter('capitalize', function () { //input 需要过滤的元素 //char位置,索引减一 return function (input, char) { if (isNaN(input)) { //如果序号位置没有设置,索引位置默认是0 var char = char - 1 || 0; //把过滤元素索引位置上的字母转换成大写 var letter = input.charAt(char).toUpperCase(); var out = []; for (var i = 0; i < input.length; i++) { if (i == char) { out.push(letter); } else { out.push(input[i]); } } return out.join(''); } else { return input; } } });
大まかに次のように使用されます:
{{'7' | 大文字:3}}
フィルターコレクション
特定の条件を満たすコレクション内の要素をフィルターで除外します。
var app = angular.module('filters', []); app.controller('demo', function ($scope) { $scope.languages = [ {name: 'C#', type: 'static'}, {name: 'PHP', type: 'dynamic'}, {name: 'Go', type: 'static'}, {name: 'JavaScript', type: 'dynamic'}, {name: 'Rust', type: 'static'} ]; }); //过滤集合 app.filter('staticLanguage', function () { return function (input) { var out = []; angular.forEach(input, function (language) { if (language.type === 'static') { out.push(language); } }); return out; } });
大まかに次のように使用されます:
<li ng-repeat="lang in languages | staticLanguage">{{lang.name}}</li>
フィルタリング、複数のパラメータの取得、複数の処理
数値の表示単位と表示位置を定義します。
var app = angular.module('filters', []); app.controller('demo', function ($scope) { $scope.digit = 29.88; }); //过滤 做多件事 多个参赛 app.filter('customCurrency', function () { return function (input, symbol, place) { if (isNaN(input)) { return input; } else { //检查symbol是否有实参 var symbol = symbol || '¥'; var place = place === undefined ? true : place; if(place===true){ return symbol+input; }else{ return input + symbol; } } } });
大まかに次のように使用されます:
<p><strong>Original:</strong></p> <ul><li>{{digit}}</li></ul> <p><strong>Custom Currency Filter</strong></p> <ul> <li>{{digit | customCurrency}} --Default</li> <li>{{digit | customCurrency:'元'}} --custom symbol</li> <li>{{digit | customCurrency:'元':false}} -- custom symbol and custom location</li> </ul>
フィルターを使用する 2 つの方法
1. テンプレートでフィルター
を使用します。{{}} でフィルターを直接使用し、その後に | を使用して式を区切ることができます。
{{ expression | filter }}
複数のフィルターを一緒に使用することもできます。前のフィルターの出力は次のフィルターの入力として使用されます (この製品がパイプのように見えるのも不思議ではありません...)
{{ expression | filter1 | filter2 | ... }}
フィルターはパラメーターを受け取ることができ、パラメーターは次のように : で分割されます。
{{ expression | filter:argument1:argument2:... }}
{{}} でデータをフォーマットすることに加えて、命令でフィルターを使用することもできます。たとえば、最初に配列をフィルターしてから出力をループします。
<span ng-repeat="a in array | filter ">
2. コントローラーとサービスでフィルターを使用する
フィルターは、おなじみの依存関係挿入を通じて JS コードでも使用できます。たとえば、コントローラーで通貨フィルターを使用したい場合は、コードをコントローラーに挿入するだけです。
app.controller('testC',function($scope,currencyFilter){ $scope.num = currencyFilter(123534); }
テンプレートで {{num}} を使用すると、$123,534.00 を直接出力できます!サービスでのフィルターの使用についても同様です。
この時点で、コントローラーで複数のフィルターを使用したい場合、それらを 1 つずつ挿入する必要があるのではないかと疑問に思うかもしれません。弟よ、心配しないでください。必要なフィルターを呼び出すための $filter サービスが提供されています。使用方法は次のとおりです。
app.controller('testC',function($scope,$filter){ $scope.num = $filter('currency')(123534); $scope.date = $filter('date')(new Date()); }
同様の効果が得られます。利点は、さまざまなフィルターを便利に使用できることです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

JavaScriptはPowerPointで実行でき、外部JavaScriptファイルを呼び出したり、VBAを介してHTMLファイルを埋め込んだりすることで実装できます。 1. VBAを使用してJavaScriptファイルを呼び出すには、マクロを有効にし、VBAプログラミングの知識を持つ必要があります。 2。JavaScriptを含むHTMLファイルを埋め込みます。これは、シンプルで使いやすいが、セキュリティ制限の対象となります。利点には、拡張機能と柔軟性が含まれますが、欠点にはセキュリティ、互換性、複雑さが含まれます。実際には、セキュリティ、互換性、パフォーマンス、ユーザーエクスペリエンスに注意を払う必要があります。
