Angular JSディレクティブ、リンク関数の双方向データバインディングを変更します

ジェームズ・ガント

単一のオプションオブジェクトまたはいくつかの属性を介してオプションを設定できる角度ディレクティブを作成しようとしています。コードの種類の例を次に示します。

app.directive('testElement', [function () {
    return {
        restrict: "E",
        scope: {
            options: "="
        },
        template: "<p><span>Name: </span>{{ options.name }}</p>",
        link: function (scope, element, attrs) {
            scope.options = scope.options || {};
            if (attrs.name)
                scope.options.name = attrs.name;
        }
    };
}]);

これは、options属性を介して名前を渡すと、名前の値が表示されるという点で正常に機能します。しかし、name属性を介して名前を渡すと、リンク関数がオプションを変更しても、値はレンダリングされません。

http://plnkr.co/edit/IMVZRdAW2a5HvSq2WtgT?p=preview

オプションの双方向データバインディングがどのように機能するかについて、基本的な何かが欠けているように感じます。

パトリック

双方向のデータバインディングを渡さないと、angularは怒ります。

https://github.com/angular/angular.js/issues/1435

オプションのバインディングを使用する(=?):

app.directive('testElement', [function () {
    return {
        restrict: "E",
        scope: {
            options: "=?"
        },
        template: "<p><span>Name: </span>{{ options.name }}{{ test }}</p>",
        link: function (scope, element, attrs) {
            scope.options = scope.options || {};
            if (attrs.name)
                scope.options.name = attrs.name;
        }
    };
}]);

または、古いバージョンのangularを使用している場合は、attrsで$ evalを使用します。オプション:

app.directive('testElement', [function () {
    return {
        restrict: "E",
        //Still can create isolate scope to not clobber parent scope variables.
        scope: {},
        template: "<p><span>Name: </span>{{ options.name }}{{ test }}</p>",
        link: function (scope, element, attrs) {
            scope.options = scope.$eval(attrs.options) || {};
            if (attrs.name)
                scope.options.name = attrs.name;
        }
    };
}]);

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

ngmodelディレクティブAngularを使用しない双方向データバインディング

分類Dev

Angularディレクティブの双方向データバインディングが失敗する

分類Dev

Angular2でngModelを使用せずに双方向バインディングを使用してカスタムディレクティブを作成する方法

分類Dev

Angular双方向データバインディンググリーティング

分類Dev

Angular2-コンポーネント変数/コンポーネントクラスプロパティの双方向データバインディング?

分類Dev

Angular双方向データバインディングはスコープディレクティブを分離しますが、プロパティは定義されていませんか?

分類Dev

Angularディレクティブは要素スタイルの変更をリッスンします

分類Dev

Angular 2:ContenteditableModel:双方向のデータバインディング

分類Dev

Angular双方向データバインディングの代替

分類Dev

Angular双方向データバインディングの代替

分類Dev

Angular 6-ngModelは、関数を介して双方向のデータバインディングを確立します

分類Dev

Angularディレクティブの分離スコープでのオプションの双方向バインディング

分類Dev

Angular双方向データバインディングと親コンポーネントの変更の監視

分類Dev

双方向のデータバインディングなしでAngular2の「選択」から選択したオブジェクトを取得する方法

分類Dev

Angular2での双方向データバインディングの共有RxJSサブジェクト

分類Dev

Angular2双方向データバインディング

分類Dev

Angular2 ディレクティブは、親コンポーネントのコールバックまたは変更をリッスンします

分類Dev

データバインディングを使用した入力要素に関するAngular4ディレクティブ

分類Dev

Angular2 +で双方向のデータバインディングを処理しながらnull変数を処理する方法

分類Dev

Angular2:Mapオブジェクトの双方向バインディング

分類Dev

Angular2:自動スクロールディレクティブの検出タイミングを変更します

分類Dev

ルート変更時にAngularはバインディング、ディレクティブ、ngOnInitを実行しません

分類Dev

Angular.js。サービスを使用すると、双方向のデータバインディングが中断します

分類Dev

$ parseを使用してテンプレートにバインディングを使用したデータのAngularディレクティブ処理

分類Dev

スコープ内のAngularディレクティブ関数にイベントを送信します

分類Dev

Angular2-双方向バインディングのエラー:チェック後に式が変更されました

分類Dev

双方向バインディングの Angular2 コンポーネント入力が変更イベントをトリガーしない

分類Dev

Angularは、双方向データバインディングでバインドする「イベント」をどのように認識しますか

分類Dev

htmlテーブルとAngular2コンポーネント間の双方向データバインディングを実現する方法

Related 関連記事

  1. 1

    ngmodelディレクティブAngularを使用しない双方向データバインディング

  2. 2

    Angularディレクティブの双方向データバインディングが失敗する

  3. 3

    Angular2でngModelを使用せずに双方向バインディングを使用してカスタムディレクティブを作成する方法

  4. 4

    Angular双方向データバインディンググリーティング

  5. 5

    Angular2-コンポーネント変数/コンポーネントクラスプロパティの双方向データバインディング?

  6. 6

    Angular双方向データバインディングはスコープディレクティブを分離しますが、プロパティは定義されていませんか?

  7. 7

    Angularディレクティブは要素スタイルの変更をリッスンします

  8. 8

    Angular 2:ContenteditableModel:双方向のデータバインディング

  9. 9

    Angular双方向データバインディングの代替

  10. 10

    Angular双方向データバインディングの代替

  11. 11

    Angular 6-ngModelは、関数を介して双方向のデータバインディングを確立します

  12. 12

    Angularディレクティブの分離スコープでのオプションの双方向バインディング

  13. 13

    Angular双方向データバインディングと親コンポーネントの変更の監視

  14. 14

    双方向のデータバインディングなしでAngular2の「選択」から選択したオブジェクトを取得する方法

  15. 15

    Angular2での双方向データバインディングの共有RxJSサブジェクト

  16. 16

    Angular2双方向データバインディング

  17. 17

    Angular2 ディレクティブは、親コンポーネントのコールバックまたは変更をリッスンします

  18. 18

    データバインディングを使用した入力要素に関するAngular4ディレクティブ

  19. 19

    Angular2 +で双方向のデータバインディングを処理しながらnull変数を処理する方法

  20. 20

    Angular2:Mapオブジェクトの双方向バインディング

  21. 21

    Angular2:自動スクロールディレクティブの検出タイミングを変更します

  22. 22

    ルート変更時にAngularはバインディング、ディレクティブ、ngOnInitを実行しません

  23. 23

    Angular.js。サービスを使用すると、双方向のデータバインディングが中断します

  24. 24

    $ parseを使用してテンプレートにバインディングを使用したデータのAngularディレクティブ処理

  25. 25

    スコープ内のAngularディレクティブ関数にイベントを送信します

  26. 26

    Angular2-双方向バインディングのエラー:チェック後に式が変更されました

  27. 27

    双方向バインディングの Angular2 コンポーネント入力が変更イベントをトリガーしない

  28. 28

    Angularは、双方向データバインディングでバインドする「イベント」をどのように認識しますか

  29. 29

    htmlテーブルとAngular2コンポーネント間の双方向データバインディングを実現する方法

ホットタグ

アーカイブ