2013-07-01 9 views
11

Angular UI Bootstrapライブラリのコンポーネントを使用してボタンをクリックすると、datepickerポップアップが表示されます。 両方の例がAngular UI Boostrapウェブサイトにありますが、それらを組み合わせる方法はありません。私はpopupディレクティブのテキストの属性値としてDatepicker divを配置するという考え方は嫌いです。Angular UI Bootstrap - ポップアップDatepicker

また、ng-showをDatepicker divにも使用しようとしましたが、それでも動作できません。

ここに私が今持っているコードがあります。

<div ng-controller="DatepickerCtrl" class="input-append"> 
     <input class="input-small ng-pristine ng-valid" 
       type="text" 
       ng-value="dt" /> 
     <button type="button" 
       class="btn" 
       popover-placement="right" 
       ng-click"showDatePicker=true"  // the show when clicked strategy 
       popover="On the Right!">   // Don't see a way to make this encapsulate a div 
        <i class="icon-calendar"></i> 
     </button> 
     <datepicker ng-model="dt" 
        ng-show="showDatePicker" 
        starting-day="1" 
        date-disabled="disabled(date, mode)" 
        min="minDate" max="'2015-06-22'"> 
     </datepicker> 
</div> 

私は本当にng-show戦略が嫌いです。むしろそれをポップオーバーにするのだろうかと思うが、それをもっと良くするための方法があると思うので、私は気にしないだろう。

+0

[アングルストラップ](http://mgcrea.github.io/angular-strap/#/datepicker)でお試しください。 – Stewie

+0

私はそれを見て、最終的にこれを解決する方法がない場合は使用します。 –

答えて

13

更新 2015-08-16 - Angular UI Bootstrap 0.13.0から、この機能が追加されました!これは、私が下で説明したものと非常によく似ています。この機能を使用するには、ポップオーバーを適用する要素にpopover-template="'mytemplate.html'"を追加します。

私はこの機能が動作していることを示すnew exampleを作成しました。 2013年7月2日のよう


、あなたはポップオーバー内のHTMLマークアップを置くことを可能にする角度UIブートストラッププロジェクトとopen issueがあります。

この変更をマージすると、テンプレート内に日付ピッカーを配置し、ポップオーバーを宣言した要素にpopover-template="mytemplate.html"を追加することでこのテンプレートを参照できます。

この機能の例として、Plunker that I recently forkedがあります。

状況が変化すると、この回答が更新されます。あなたは冒険を感じている場合は

EDIT

、私が使用したコードは、意志がthis commitにつながる、Pull Request 369に基づいています。

私はコミット理由としての認識しています三つの理由がありますが、まだマージされていない。

  1. 親スコープが破壊されたときにクリーンアップする必要があるスコープがあります。これはPawel Kozlowskiが私がリンクしたコミットのコメントで言及されています。
  2. ポップオーバーのオープン、クローズおよび再オープンにより、ポップオーバーが再開されたときにスコープブレークがバインドされます。私はこれに対応策をIssue 220に掲載しました(上記と同じ問題がリンクされています)。
  3. まだこれに関するテストはありません。

私はそれがプロジェクトにマージすることができますので、これらの問題に取り組むためにいくつかの時間にこの週末を見つけることを試みることができます。

+0

ジョン - 本当に便利です。しかし、あなたはui-bootstrap.jsでパッチを当てたものについて説明できますか?差異はありますか?このパッチを0.4.0バージョンのui-bootstrap-tpls.jsに適用したいと思います。私はすでに適用されている他のパッチを持っています。あなたの改造を単独で使うことはできません。私には、スタンドアロンのスクリプトファイルでmonkey-patchすることが可能であるはずです。スタンドアロンのスクリプトファイルはui-bootstrap-tpls-0.4.0.jsに追加するだけです。もしあなたがそれを鞭打つことができるなら、本当にクールだろう。 :) – Cheeso

+0

こんにちは!私は私の答えを更新しました。私はそれについてdiffを持っていませんが、コードを週末にマージするために私が何ができるか見てみるかもしれません。 –

+0

更新していただきありがとうございます。それはトリックでした!この変更でアップデートを得ることを楽しみにしていますが、今のところこれは私のために働きます。 – Cheeso

関連する問題