特定のタイプの要素コンテンツにのみディレクティブを適用する方法

toddmo

にのみ一致するディレクティブを作成したいと思います<input type="password"

コンパイルでこのタイプの入力が見つかったときはいつでも、ディレクティブを適用したいと思います。要素(余分なクラスまたは属性)に何も追加したくありません。

これは可能ですか?どうすればいいのですか?

解決:

後世のために、私は私の解決策を含めています

angular.module('controls', [])

.directive('type',
  function() {
    return {
      restrict: 'A',
      compile: function(element, attributes) {
        if (element.prop('nodeName') === 'INPUT' && attributes.type === 'password') {
          return function link(scope, element, attributes, controller) {
            element.on('keypress', function(event) {
              var s = String.fromCharCode(event.which);
              if (s.toUpperCase() === s && s.toLowerCase() !== s && !event.shiftKey) {
                element.addClass('capslock');
              } else {
                element.removeClass('capslock');
              }
            });
          };
        }
      }
    };
  });
.capslock {
  background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuNWWFMmUAAAKUSURBVEhLrVbLahRBFK3ErhoNuHIlghsRBBE3vlAzVZMEN7pwoQtX6jcIKhiIuBAXfoCPlVs3IrhQEQSVBIIg+A5MvyaOqKjJqKC4Gc9tq6Wn+trdM5kDB4a+557TXXWre0QZukKMthpePdLycmTUo1DLdqRVhxga2Q6Neky1wHiatLatf9w8KlYFRh5HwAKCutUoF2ItT3TRa22qYbGuNsNgLm9YmfOhVlusXTFiXZvCci0zJv2yE4zXDlhbHpGpTSLsF9M8KH/6eABr34u4UdsEwZLTwBKDch03doWrucTSLjexRTbmL7ozYhSFJ1yDSwrDNI4Q0XOV0zCcowwbJwQm8RgjypHCZjKjT8cg1F6lUGScTJtGcOG5K3AZG3UtG5aCQnEOy5dXy7eUJfy6t5MVZPi/sBRVQ33t7ccxkOe5YsqysBSkKQ+VFwVEd/lifs/KkGxPQSj28QENTJMvqhv9hKWg0OTYcJ5GBgLFL2xRy0vvJsW6N3vF2vYhMfZQC8965kA10pD2NXrQf9r1IyLrK55QfeaKLgOjzlj/HGB0iutxmQRizSt9DYYTKH3awztc0eWQAu/jCdU0V3Q5jMDYyAsiaMjtXJHhygO1t4P09BJ+ygmyhOm5xJ0BPT3XkyU0z6xciJZWhzlRlrTX+OugbMs/vMQ1DN5trqeHWh2xLekLXN5jhb38jdX4gaf9nhC/6ZqjyZHeMMmLO4vWxJoNuNMPXMPKKD/6+1ZvtDG98Ce8XRB18k2DEavwDd/LPdaeRwufK5yX95xBX8RqLRpvt7UtRjQ+tr7qC4EjHXDaImtXHWg+CM5mzYqIJZynibftgyNuyK2YyLM0/rj7VzD/ZAfsBYbiVoxasy63WXkBhPgDAANrgFGFYP4AAAAASUVORK5CYII=) no-repeat right -10px center;
  background-size: 16px 16px;
  background-position: right 5px center;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app='controls'>
  Type into second box with caps on or off and see what happens!
  <br/>
  <input type="text" />
  <input type="password" id="search-box" ng-model="searchString" placeholder="text search" />
  <p>{{searchString}}</p>
  <div></div>
</body>

フィル

あなたはのためのディレクティブを追加してみてください可能性がtype要素である場合、リンク機能を属性とだけ実行<input>してtypeいる「パスワード」

.directive('type', function() {
    return {
        restrict: 'A',
        compile: function(tElement, tAttrs) {
            if (tElement.prop('nodeName') === 'INPUT' && tAttrs.type === 'password') {
                return function postLink(scope, iElement, iAttrs, controller) {
                    // etc
                };
            }
        }
    };
})

ディレクティブが追加されますPlunkerデモ「赤」の要素にクラスを〜http://plnkr.co/edit/EurHOzKiloE6B0QQSwAY?p=preview

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

コンテンツディレクトリ内のすべてのファイルにメタデータを適用する方法

分類Dev

特定のディレクティブに$ digestを適用する

分類Dev

コンポーネントツリーの上の特定のタイプのすべてのディレクティブへの参照を取得する

分類Dev

AngularJS:ディレクティブテンプレートを動的にコンパイルする際の適切なスコープバインディング

分類Dev

Angularディレクティブの子スコープを適切にクリーンアップする方法

分類Dev

次のコンテンツセキュリティポリシーディレクティブに違反しているため、インラインスタイルの適用を拒否しました

分類Dev

次のコンテンツセキュリティポリシーディレクティブに違反しているため、インラインスタイルの適用を拒否しました: "style-src'self '" modernizr

分類Dev

反応ネイティブの特定のボタンに異なるスタイルを適用する方法

分類Dev

Angularディレクティブ:既存のテンプレート要素にコンパイル時にng-classディレクティブを追加します

分類Dev

Angular 2+では、Angularディレクティブも適用されている場合、ネイティブ要素をテンプレート変数にバインドするようにどのように指定しますか?

分類Dev

サイトのサブディレクトリにのみコンテンツスクリプトをロードする

分類Dev

templateUrlhtmlコンテンツのangularディレクティブの属性にアクセスする方法

分類Dev

templateUrlhtmlコンテンツのangularディレクティブの属性にアクセスする方法

分類Dev

元のコンテンツを保持するAngularJSディレクティブ

分類Dev

Angularのディレクティブ属性要素の外側をクリックしたときに要素にスタイルを適用する

分類Dev

ファイルの実際のコンテンツをコピーせずに、ディレクトリ構造、フォルダ、サブフォルダ、ファイルプロパティ、メタデータをコピーする方法は?

分類Dev

少数のルートのみに認証ディレクティブを適用する方法

分類Dev

Angular2-ディレクティブの子HTML要素に条件付きスタイルを適用します

分類Dev

Angular2-ディレクティブの子HTML要素に条件付きスタイルを適用します

分類Dev

特定の(#if /#endif)ディレクティブにのみCプリプロセッサを適用するにはどうすればよいですか?

分類Dev

特定のコレクションにセキュリティルールを適用する方法

分類Dev

anglejsディレクティブ+多くのコントローラーにスコープ値を適用

分類Dev

テンソル要素を特定のインディクスに分割する方法

分類Dev

Drupal7-特定のコンテンツタイプフィールドにデータを追加する

分類Dev

Angular4のコンポーネントに属性ディレクティブを適用します

分類Dev

AWSGlueを使用して特定のパーティションにのみジョブを適用する方法

分類Dev

Drupal8-コンテンツタイプの値をエンティティ参照に制限する方法

分類Dev

AngularJS:ディレクティブとデータバインディングを参照するテンプレート付きのディレクティブ

分類Dev

WordPressのブートストラップタブでアイテムとコンテンツにアクティブなクラスを追加する方法

Related 関連記事

  1. 1

    コンテンツディレクトリ内のすべてのファイルにメタデータを適用する方法

  2. 2

    特定のディレクティブに$ digestを適用する

  3. 3

    コンポーネントツリーの上の特定のタイプのすべてのディレクティブへの参照を取得する

  4. 4

    AngularJS:ディレクティブテンプレートを動的にコンパイルする際の適切なスコープバインディング

  5. 5

    Angularディレクティブの子スコープを適切にクリーンアップする方法

  6. 6

    次のコンテンツセキュリティポリシーディレクティブに違反しているため、インラインスタイルの適用を拒否しました

  7. 7

    次のコンテンツセキュリティポリシーディレクティブに違反しているため、インラインスタイルの適用を拒否しました: "style-src'self '" modernizr

  8. 8

    反応ネイティブの特定のボタンに異なるスタイルを適用する方法

  9. 9

    Angularディレクティブ:既存のテンプレート要素にコンパイル時にng-classディレクティブを追加します

  10. 10

    Angular 2+では、Angularディレクティブも適用されている場合、ネイティブ要素をテンプレート変数にバインドするようにどのように指定しますか?

  11. 11

    サイトのサブディレクトリにのみコンテンツスクリプトをロードする

  12. 12

    templateUrlhtmlコンテンツのangularディレクティブの属性にアクセスする方法

  13. 13

    templateUrlhtmlコンテンツのangularディレクティブの属性にアクセスする方法

  14. 14

    元のコンテンツを保持するAngularJSディレクティブ

  15. 15

    Angularのディレクティブ属性要素の外側をクリックしたときに要素にスタイルを適用する

  16. 16

    ファイルの実際のコンテンツをコピーせずに、ディレクトリ構造、フォルダ、サブフォルダ、ファイルプロパティ、メタデータをコピーする方法は?

  17. 17

    少数のルートのみに認証ディレクティブを適用する方法

  18. 18

    Angular2-ディレクティブの子HTML要素に条件付きスタイルを適用します

  19. 19

    Angular2-ディレクティブの子HTML要素に条件付きスタイルを適用します

  20. 20

    特定の(#if /#endif)ディレクティブにのみCプリプロセッサを適用するにはどうすればよいですか?

  21. 21

    特定のコレクションにセキュリティルールを適用する方法

  22. 22

    anglejsディレクティブ+多くのコントローラーにスコープ値を適用

  23. 23

    テンソル要素を特定のインディクスに分割する方法

  24. 24

    Drupal7-特定のコンテンツタイプフィールドにデータを追加する

  25. 25

    Angular4のコンポーネントに属性ディレクティブを適用します

  26. 26

    AWSGlueを使用して特定のパーティションにのみジョブを適用する方法

  27. 27

    Drupal8-コンテンツタイプの値をエンティティ参照に制限する方法

  28. 28

    AngularJS:ディレクティブとデータバインディングを参照するテンプレート付きのディレクティブ

  29. 29

    WordPressのブートストラップタブでアイテムとコンテンツにアクティブなクラスを追加する方法

ホットタグ

アーカイブ