2016-10-07 8 views
4

md-menu-itemの要素を私のmd-menuに使用しています。メニューはボタンでアクティブになります。すべて正常に動作し、すべてデフォルトの角度jを使用します。角材 - メニューを閉じるときにmd-selectを閉じる/隠すにはどうしたらいいですか?

md-menu-itemの中にはmd-select個の入力があります。私はボタンをクリックを経由して、メニューを開くと

... 

<md-menu-item> 
    <md-input-container> 
     <label>My Label</label> 
     <md-select name="myName" aria-label="My Label" ng-model="mv.myModel" ng-change="vm.onChangeEvent(foo)"> 
      <md-option ng-value="value" ng-repeat="foo in vm.bar | orderBy: 'name'"> 
       {{foo.name}} 
      </md-option> 
     </md-select> 
    </md-input-container> 
</md-menu-item> 

... 

- 私は何も選択しないと私は<md-select>(画面上の任意の場所に)のオフにクリックした場合、それはすべてが順調である&なければならないようmd-menuが消える:それはこのようになります。

<md-select>要素の1つをクリックし、画面のどこかをクリックすると<md-menu>が閉じますが、まだ<md-select>要素が表示されます。

メニューアイテム内の要素を「入れ子にする」方法があるので、メニュー項目を閉じるとすべての子要素も閉じます。

Here is a codepen example私が見ているもの。

ありがとうございます!

+0

ユーザーインターフェイスの観点からは、期待通りに機能していると思います。メニューがドロップダウンされている場合、それは、ユーザが離れる前に選択を促す画面上にとどまることを意味する。それ以外のことは、私のアドバイスは、AM指令を調べて、オプションが選択されたらどのコードがメニューを閉じるのかを確認し、同じ方法でトリガすることです。 –

+0

この行のように、カスタムクラスをバックグラウンドに追加することができればうれしいです:https://github.com/angular/material/blob/master/src/components/select/select.js#L1249 – laughingpine

答えて

1

クリックすると、対応する要素を閉じるのに使用されるmenuselectの背景が問題です。だから角度のある素材です。これらの背景のz-indexを変更することができます。

私は(あなただけではこれらの背景のためのzインデックスを変更することができます参照してください唯一の簡単な修正だ
$z-index-menu: 100 !default; 
$z-index-calendar-pane: 100 !default; 
$z-index-select: 90 !default; 

:デフォルトはvariables.scssファイル(あなたが最初にそれを閉じて、メニューの背景には、選択の上で見ることができるように)で指定されていますあなたのCSS)。

0

ボックスの外側をクリックするとmd-selectを非表示にします。私は'$mdSelect.hide()'を使ってmd-selectドロップダウンメニューを閉じます。私はちょうど私のメインコントローラに次の3行を入れます。

$(document).bind('click', function (event) { 
     $mdSelect.hide(); 
    }); 
関連する問題