私の日付ピッカーのディレクティブを作成しようとしていますが、関連するコードです。これは、一度に動作スコープ内の式を評価する
使い方
<date-input open="openCalendar = true">
<input ng-model="ctrl.model.theDate"
uib-datepicker-popup="dd-MMMM-yyyy"
is-open="openCalendar">
</date-input>
ディレクティブ
angular
.module('common.directives')
.directive('dateInput', function() {
return {
restrict: 'E',
transclude: true,
scope: {open:'&'},
template: 'date-input-template',
};
});
テンプレート
<script type="text/ng-template" id="date-input-template>
<div class="input-group">
<ng-transclude></ng-transclude>
<div class="input-group-btn">
<button class="btn btn-default" type="button" ng-click="open()">
<i class="glyphicon glyphicon-calendar"></i>
</button>
</div>
</div>
</script>
。 2回目のカレンダーを開こうとすると、日付ピッカーが表示されません。私は間違ったことをしていると確信しています、それが何であるかは分かりません。
ご意見やご指摘をお待ちしております。
はあなたに感謝式で関数を呼び出す必要があります。私は 'open'を' open() 'に変更しましたが、これは最初のクリックでカレンダーを開くだけです。カレンダーを閉じてもう一度ボタンをクリックすると、カレンダーは表示されません。それは範囲の問題のようです。しかし、私はそれをどのようにデバッグするのが最善かわかりません。 –
@JasonMeckleyプロトタイプスコープ継承の問題を避けるために、または 'openCalendar = true'式を関数に移動してその関数を呼び出すには、' data.openCalendar = true'のようなオブジェクトを 'openCalendar'に使うことができます。 –