jQuery / JS開発者向けのAngular Light



「クリックしてブロックを非表示にする方法」や「条件で色付けする方法」などのトースターに関する質問が定期的に表示されるので、jQueryコードと開発速度を改善できる4つの「トリック」を紹介します。

最初の例


以下の説明の例: jQueryの例Angular Lightの例
この例は、2つの「モーメント」で構成されています。1.クリックして「パネル」を選択し、2。選択した「パネル」を表示します。

1. jQueryの例では、 class="button"ボタンをマークするように強制されているため、コードからそれらを見つけることができます(ただし、クラスは元々作成されていません)。 Angular Lightの例では、これは必要ありません-DOMに変数をもたらします。このボタンをクリックすると、変数が割り当てられることを直接示すことができます: al-click="active='win'"つまり、 ここでは、クリックするだけでコードが実行されます: active='win'

2.選択したパネルをjQueryで表示するには、ブロック(id =“ info_win”)をマークしてコードでブロックを見つけ、コードで表示する必要がある内容に応じて操作を行う必要があります。 上記のように、ALを使用してブロックをマークする必要はありません。ブロックを表示する条件を指定するだけです: al-show="active=='win'" 、つまり 変数active=='win'場合、現在のブロックが表示されます。

もちろん、このコードブロックをid = "dialog"で "アクティブ化"する必要があります。
 alight.bootstrap('#dialog', { active: 'win' //       active }); 
この例では、2つの「コマンド」のみが必要でした: al-clickal-show (上記のリンクから例を見ることができます)。

ボタンの色を追加


例: jQueryの例Angular Lightの例
ここで、たとえば、アクティブなボタンを強調表示する必要があります。「アクティブな」クラスを追加しました。おそらくjQueryの例に最適なのは、すべてのボタンのクラスを削除し、目的のボタンに設定することです。
  dialog.find('.button').removeClass('active'); dialog.find('.button[value=' + code + ']').addClass('active'); 

OK、ALでやろう。 なぜなら アクティブな変数が使用可能になったら、それを使用します。
ボタンal-class = " activeactive == 'win' "をオンにします。 このコードは、 active == 'win'の条件が満たされると、 アクティブクラスを現在の要素に追加します。つまり、この「効果」のためにコードjsを追加する必要はありません。

例の複雑化


例: jQueryの例Angular Lightの例
多くのタスクでは、ユーザーデータの入力と出力が必要です。ブロックの表示/非表示を切り替えるテキスト入力、その出力、チェックボックスコントロールの例を作成します。

jQueryのオプション-HTMLのすべての要素(#name、#visible、#box、#boxtext)をマークアップしてから、イベントにサブスクライブし、変換、テキストの表示、ブロックの非表示の機能を作成します。

ALの場合、2つの変数namevisibleが必要です。 input type="text"からテキストを取得するには、コマンドal-value="name"を使用し(入力されたすべてのテキストを変数nameに割り当てます)、このテキストを表示するには、 {{name}}コンストラクトを適切な場所にプッシュします、しかし出力の前にテキストを変換する必要があるので、js- {{ name.toUpperCase() }}使用します

input type="checkbox"要素は "command" al-checked="visible"を使用し、要素の状態に応じてvisible = trueまたはfalseを割り当てます 。 さて、ブロックal-show="visible"を非表示にする方法は既に知っています。

(jQueryの例では、初期値がjsから設定されると想定されているため、jsの要素が初期化されます)

最も難しい


すべてのAngular.js開発者が恐れているディレクティブについて学ぶ時間です 。 なんで? たとえば、要素に対して何らかのトリッキーな作業を行うか、jQueryプラグインを「挿入」する必要があります。
最初は、ディレクティブは非常に単純になります。たとえば、テキストを赤で色付けするディレクティブを作成します。
これを行うには、たとえばタグal-redで要素を「マーク」しtexttext
それでは、ディレクティブ自体を作成しましょう。 関数を同じ場所タグに配置する必要があります。
 alight.directives.al.red = function(scope, element) { $(element).css('color', 'red') }; 
この関数は、入力としてマークした要素を受け入れます。 完了、 例はこちらです。 そうすれば、jQueryのALとALのjQueryを使用できます。

2番目の例であるボタンのグループでわかるように、ボタンには同じHTMLコードがあります。 コードとテキストのみが異なります。 そのため、HTMLコードを複製しないようにループで表示できますが、これは既に次の記事で説明しています。

そして最後に、 ToasterからjQueryへの実際のであり、ALに変換されます (ただし、さらに簡単にすることもできます)。

主なアイデアは、MVC / MVVM(Angular Light)を試したい場合、jQueryを放棄する必要がないということです。 Angular Lightを使用していくつかの要素を実行し、両方を活用できます。 Angular Lightを使用してもプロジェクトは重くなりません。最新バージョンの重量は約17kb (圧縮、gzip圧縮、最小化)です。 Angular Lightは、最速のMVVMライブラリの1つでもあります。

PS:Angular Lightを試してみると、バージョンに注意してください。インターネット上では、古いAngular Lighのほとんどの例がありますが、少し違いがあります。

Source: https://habr.com/ru/post/J272125/


All Articles