AngularJSディレクティブは内部要素を取得します

フィーコ

次のディレクティブがあります:

(function() {
    'use strict';

    angular
        .module('myApp')
        .directive('inner', inner);

    function inner () {

        return {
            restrict: 'A',
            scope: false,
            link: linkFunc
        };

        function linkFunc (scope, element, attrs) {

        }
    }
})();

そしてHTML:

<span inner>{{vm.number}}</span>

linkFuncでvm.numberの値にアクセスするにはどうすればよいですか?spanタグの内容から正確に値を取得する必要があります。

ジュソピ

これを行うにはさまざまな方法がありますが、最も一般的な2つの方法は次のとおりです。

ngModel

ng-modelテンプレートでそのように使用できます。

<span inner ng-model="vm.number">{{vm.number}}</span>

ディレクティブでは、ngModelその値を取得できる場所が必要です

.directive( 'inner', function(){
    return {
        require: 'ngModel',
        link: function($scope, elem, attrs, ngModel){
            var val = ngModel.$modelValue
        }
    }
})

分離スコーププロパティを宣言する

<span inner="vm.number">{{vm.number}}</span>

.directive( 'inner', function(){
    return {
        scope: { inner:'=' } ,
        link: function($scope, elem, attrs){
            var val = $scope.inner
        }
    }
})

あまり一般的ではない方法:

$ parseサービスを使用して値を取得します

テンプレートを再度使用する:

<span inner="vm.number">{{vm.number}}</span>

まず$parse、ディレクティブの定義にサービスを挿入する必要があると仮定しましょう次に、link関数内で次の操作を行います。

var val = $parse(attrs.inner)

読み取り専用の継承スコープ

ディレクティブのスコープオプションをどのように定義したかによっては、物事が同期しなくなる可能性があるため、これはお勧めしません。

  1. 分離(別名分離)スコープはその値を継承せず、ほとんどの場合未定義であるvm.numberため、おそらく未定義の参照エラーをスローしますvm

  2. 継承されたスコープは親スコープから初期値を継承しますが、実行時に発散する可能性があります。

  3. ディレクティブの$scope参照は式に存在するスコープと同じであるため、スコープが同期を維持する唯一のケースはありません。{{vm.number}}

ここでも、これはおそらく最良の選択肢ではないことを強調します。多数の繰り返し要素または多数のバインディングによってパフォーマンスの問題が発生している場合にのみ、これをお勧めします。ディレクティブのスコープオプションの詳細-https://spin.atomicobject.com/2015/10/14/angular-directive-scope/

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

ngClickディレクティブ内の要素を取得します

分類Dev

ディレクティブのリンク関数からDOM階層の要素を取得します[AngularJS]

分類Dev

ディレクティブはAngularJSの要素を認識しません

分類Dev

Angularjsディレクティブはデータを取得しません

分類Dev

AngularJSディレクティブの要素の子をループします

分類Dev

AngularJSディレクティブの入力要素で$ validを監視します

分類Dev

Angular6は、ディレクティブ自体で同じディレクティブ名を持つすべての要素を取得します

分類Dev

Angularjsは、ディレクティブを使用して要素を動的に追加および削除します

分類Dev

Angularjsでdatepickerディレクティブの値を取得します

分類Dev

AngularJSはディレクティブ内の要素幅をアニメーション化します

分類Dev

AngularJSディレクティブからHTML要素クラスを取得する

分類Dev

要素IDを取得するためのAngularJSディレクティブ

分類Dev

AngularJSディレクティブをモックします

分類Dev

Angularディレクティブは要素から元の属性を削除します

分類Dev

AngularJSディレクティブはAとEを制限します

分類Dev

'=?'とは AngularJSのディレクティブの範囲を意味しますか?

分類Dev

AngularContentChildrenはディレクティブInputsとTemplateRefを取得します

分類Dev

ディレクティブからnativeElementを取得します

分類Dev

ディレクティブのtemplateUrlで$ rootScopeを取得します

分類Dev

AngularJS:ディレクティブを使用するすべての要素が同じ値を示します

分類Dev

AngularJS:transcludeを使用してディレクティブに関連付けられた要素を変更します

分類Dev

jqueryを使用して、angularjsディレクティブをDOM要素に動的に追加します

分類Dev

AngularJS-要素ディレクティブを検証する方法は?

分類Dev

ディレクティブを属性として別のディレクティブに渡す方法は?AngularJS

分類Dev

属性ディレクティブを使用して要素の子を取得する

分類Dev

AngularJsディレクティブを使用して、疑似要素にスタイルを適用できますか?

分類Dev

内部にデータオブジェクトを含む新しいディレクティブを作成するAngularJsディレクティブ

分類Dev

Angularディレクティブで親要素を取得する

分類Dev

別のディレクティブからディレクティブの属性を取得しますか?

Related 関連記事

  1. 1

    ngClickディレクティブ内の要素を取得します

  2. 2

    ディレクティブのリンク関数からDOM階層の要素を取得します[AngularJS]

  3. 3

    ディレクティブはAngularJSの要素を認識しません

  4. 4

    Angularjsディレクティブはデータを取得しません

  5. 5

    AngularJSディレクティブの要素の子をループします

  6. 6

    AngularJSディレクティブの入力要素で$ validを監視します

  7. 7

    Angular6は、ディレクティブ自体で同じディレクティブ名を持つすべての要素を取得します

  8. 8

    Angularjsは、ディレクティブを使用して要素を動的に追加および削除します

  9. 9

    Angularjsでdatepickerディレクティブの値を取得します

  10. 10

    AngularJSはディレクティブ内の要素幅をアニメーション化します

  11. 11

    AngularJSディレクティブからHTML要素クラスを取得する

  12. 12

    要素IDを取得するためのAngularJSディレクティブ

  13. 13

    AngularJSディレクティブをモックします

  14. 14

    Angularディレクティブは要素から元の属性を削除します

  15. 15

    AngularJSディレクティブはAとEを制限します

  16. 16

    '=?'とは AngularJSのディレクティブの範囲を意味しますか?

  17. 17

    AngularContentChildrenはディレクティブInputsとTemplateRefを取得します

  18. 18

    ディレクティブからnativeElementを取得します

  19. 19

    ディレクティブのtemplateUrlで$ rootScopeを取得します

  20. 20

    AngularJS:ディレクティブを使用するすべての要素が同じ値を示します

  21. 21

    AngularJS:transcludeを使用してディレクティブに関連付けられた要素を変更します

  22. 22

    jqueryを使用して、angularjsディレクティブをDOM要素に動的に追加します

  23. 23

    AngularJS-要素ディレクティブを検証する方法は?

  24. 24

    ディレクティブを属性として別のディレクティブに渡す方法は?AngularJS

  25. 25

    属性ディレクティブを使用して要素の子を取得する

  26. 26

    AngularJsディレクティブを使用して、疑似要素にスタイルを適用できますか?

  27. 27

    内部にデータオブジェクトを含む新しいディレクティブを作成するAngularJsディレクティブ

  28. 28

    Angularディレクティブで親要素を取得する

  29. 29

    別のディレクティブからディレクティブの属性を取得しますか?

ホットタグ

アーカイブ