複数の「ボタン」パラメータをAngularコンポーネントに渡す

サンポ

Angular1.5を使用して再利用可能なアイテムピッカーコンポーネントを作成しています。ピッカーには、検索フィールドと選択できるアイテムのリストがあります。ピッカーの使用例の例は、ユーザーがいくつかのアイテムを選択してから「続行」ボタンを押して続行するポップアップです。

概念的には、検索フィールドとアイテムのリストはコンポーネントに属し、[続行]ボタンは周囲のダイアログに属します。ただし、ボタンを検索フィールドの横に配置したいと思います。追加のボタンがない場合もあれば、1つの追加ボタンがある場合もあれば、2つある場合もあります。

このようなもの:

アイテムピッカー

そのようなコンポーネントを作成するための最良の方法は何ですか?

私が考えたオプション:

  1. アイテムピッカーのコンポーネント/ディレクティブを作成し、HTMLのディレクティブの前後にボタンを配置し、CSSを使用してボタンを配置します。

    ここでは、ボタンの位置がHTML内の適切な位置にないため、醜くて壊れやすいです。おそらく、ラッパーdivと、ピッカーコンポーネントの上に絶対配置する必要があります。

    <div style="position: relative"> <item-picker></item-picker> <button name="Continue" ng-click="submit()" style="position:absolute; top:5px; right: 5px"></button> </div>

  2. どういうわけか、ボタンとコールバックをパラメータとしてアイテムピッカーコンポーネントに渡します。ここでの醜さは、ボタンとスタイル、およびボタンの数のハードコーディングにあります。

    <item-picker btn1-text="Continue" btn1-style="primary" btn1-callback="submit()" btn2-text="Cancel" btn2-style="secondary" btn2-callback="cancel()"></item-picker>

    ボタンの構成とコールバックを単一の構成オブジェクトとして渡すことができるかどうかはわかりません。私は主にコールバック関数について心配しています'&'適切なコールバックバインディングではなく、構成オブジェクトを介して渡された場合に正しく機能するかどうかです。

  3. ピッカーをコンポーネント/ディレクティブにしようとするのをやめ<ng-include>、スコープからボタン構成を読み取るピッカーコードを含めるために使用します。醜さは、スコープがなく、コンポーネントを使用していません。

そのような場合のベストプラクティスはありますか?

o4ohel

考えられる解決策の1つは、ng-transcludeを使用することです。これにより、コードは次のようになります。

マークアップ

<item-picker>
  <button ng-click="parentScopeFn()">Btn 1</button>
  ...
</item-picker>

指令

angular.module('myApp', [])
.directive('itemPicker', function() {
  return {
    restrict: 'E',
    transclude: true,
    scope: {
      ...
    },
    templateUrl: 'item-picker.html'
  };
});

itemPickerテンプレートマークアップ

<div class="item-picker">
  <div class="item-picker-controls">
    <div class="item-picker-search"><input type="search" ng-model="..."></div>
    <div class="btn-group" ng-transclude></div>
  </div>
  <ul class="item-picker-list">
    <li ng-repeat="item in items" ng-bind="item"></li>
  </ul>
</div><!-- end item-picker template -->

もちろん、上記のコードは単なる例であり、itemPickerコンポーネントについて多くの仮定を行っています。また、ボタンの配置にはCSSを使用する必要がありますが、b / cを使用すると、コンポーネントのコンテキストで推論する方が簡単な場合があります。

「マルチスロットトランスクルージョン」を利用することもできます。これは、ボタンの数と種類が予測可能であり、マークアップにどのように配置されていても一貫した方法で配置したい場合におそらく役立ちます。

お役に立てれば。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

パラメータをコンポーネントに渡す

分類Dev

Angularコンポーネントのゲッターにパラメーターを渡す代わりに

分類Dev

コンポーネントAngular2のセレクターにパラメーターを渡します

分類Dev

Angular 1.5は、パラメーターを持つ関数をコンポーネントに渡しますか?

分類Dev

Knockoutの子コンポーネントにパラメータを渡す

分類Dev

パラメータ付きの関数を子コンポーネントに渡すReactDOM

分類Dev

静的な小道具と動的なパラメータを複数のコンポーネントを含むVueルートに渡す

分類Dev

React Nativeでコンポーネントにパラメーターを渡す

分類Dev

extjsパラメータをコンポーネント設定に渡す方法

分類Dev

ナビゲーションコンポーネントの引数を使用して複数のフラグメントにデータを渡す

分類Dev

Angular2-動的に生成されたコンポーネントにパラメータを渡しますか?

分類Dev

コンポーネントをパラメーターとして関数に渡すReact

分類Dev

子コンポーネントから親に関数を介してパラメータを渡すReact Redux

分類Dev

ルート内のコンポーネントにパラメータを渡すことが可能です

分類Dev

関数をパラメーターとしてAngularコンポーネントを介して(クリック)イベントに渡します

分類Dev

laravel 5 のルートからコントローラーに複数のパラメーターを渡す

分類Dev

パラメータをコンポーネントに戻す

分類Dev

UIルーターのangular1コンポーネントにresolveパラメーターを渡します

分類Dev

残り火コンポーネントから複数のパラメーターを送信します

分類Dev

routerLinkを使用して1つのコンポーネントにパラメータを渡す方法は?

分類Dev

Angular 7:* ngForコンポーネントと変数パラメーターの受け渡し

分類Dev

ボタンコンポーネントをブートストラップタブコンポーネントのタイトルプロップに渡す

分類Dev

Reactコンポーネントをパラメーターとして別のReactコンポーネントに渡す

分類Dev

ルーターパラメータをコンポーネントオブジェクトに渡す

分類Dev

Reactルーターがパラメーターをコンポーネントに渡す

分類Dev

React Native関数コンポーネント内の関数のパラメーターを渡すにはどうすればよいですか?

分類Dev

計算されたパラメータをあるVueコンポーネントから別のコンポーネントに渡す方法は?

分類Dev

あるコンポーネントから別のコンポーネントにパラメータを渡す方法

分類Dev

javascript関数のパラメーターに複数のコントロールを渡す

Related 関連記事

  1. 1

    パラメータをコンポーネントに渡す

  2. 2

    Angularコンポーネントのゲッターにパラメーターを渡す代わりに

  3. 3

    コンポーネントAngular2のセレクターにパラメーターを渡します

  4. 4

    Angular 1.5は、パラメーターを持つ関数をコンポーネントに渡しますか?

  5. 5

    Knockoutの子コンポーネントにパラメータを渡す

  6. 6

    パラメータ付きの関数を子コンポーネントに渡すReactDOM

  7. 7

    静的な小道具と動的なパラメータを複数のコンポーネントを含むVueルートに渡す

  8. 8

    React Nativeでコンポーネントにパラメーターを渡す

  9. 9

    extjsパラメータをコンポーネント設定に渡す方法

  10. 10

    ナビゲーションコンポーネントの引数を使用して複数のフラグメントにデータを渡す

  11. 11

    Angular2-動的に生成されたコンポーネントにパラメータを渡しますか?

  12. 12

    コンポーネントをパラメーターとして関数に渡すReact

  13. 13

    子コンポーネントから親に関数を介してパラメータを渡すReact Redux

  14. 14

    ルート内のコンポーネントにパラメータを渡すことが可能です

  15. 15

    関数をパラメーターとしてAngularコンポーネントを介して(クリック)イベントに渡します

  16. 16

    laravel 5 のルートからコントローラーに複数のパラメーターを渡す

  17. 17

    パラメータをコンポーネントに戻す

  18. 18

    UIルーターのangular1コンポーネントにresolveパラメーターを渡します

  19. 19

    残り火コンポーネントから複数のパラメーターを送信します

  20. 20

    routerLinkを使用して1つのコンポーネントにパラメータを渡す方法は?

  21. 21

    Angular 7:* ngForコンポーネントと変数パラメーターの受け渡し

  22. 22

    ボタンコンポーネントをブートストラップタブコンポーネントのタイトルプロップに渡す

  23. 23

    Reactコンポーネントをパラメーターとして別のReactコンポーネントに渡す

  24. 24

    ルーターパラメータをコンポーネントオブジェクトに渡す

  25. 25

    Reactルーターがパラメーターをコンポーネントに渡す

  26. 26

    React Native関数コンポーネント内の関数のパラメーターを渡すにはどうすればよいですか?

  27. 27

    計算されたパラメータをあるVueコンポーネントから別のコンポーネントに渡す方法は?

  28. 28

    あるコンポーネントから別のコンポーネントにパラメータを渡す方法

  29. 29

    javascript関数のパラメーターに複数のコントロールを渡す

ホットタグ

アーカイブ