アンギュラーストラップのdatePickerを使用しています
<input type="text" name="dateFrom" ng-model="dateFrom" bs-datepicker
data-end-date="{{endDate}}" data-start-date="{{startDate}}" />
コードから endDate または startDate を変更すると、DOM で更新されますが、日付ピッカーはこの変更を認識しないままです。何らかの更新をトリガーする必要がありますか?
ng-click
変更は、同じスコープの with 関数を介して行われ、新しい値がendDate
andに設定されstartDate
ます。
そのように(CoffeeScript):
$scope.setDateRange = (dateRange) ->
if dateRange is "past"
$scope.endDate = "-1d"
$scope.startDate = ""
if dateRange is "now"
$scope.endDate = ""
$scope.startDate = ""
if dateRange is "future"
$scope.endDate = ""
$scope.startDate = "+1d"
編集:
解決策は次のとおりです。
コントローラーのコンストラクターで、コントロールの日付と日付を保存します。
dateFromCtrl = $element.find 'input[name="dateFrom"]'
dateToCtrl = $element.find 'input[name="dateTo"]'
次に、が呼び出されたときに、 andメソッドsetDateRange
を呼び出すヘルパー メソッドをいくつか作成しました。datepicker
setEndDate
setStartDate
setEndDate = (date) ->
dateFromCtrl.datepicker 'setEndDate', date
dateToCtrl.datepicker 'setEndDate', date
setStartDate = (date) ->
dateFromCtrl.datepicker 'setStartDate', date
dateToCtrl.datepicker 'setStartDate', date
setDateRange = (dateRange) ->
if dateRange is "past"
setEndDate "-1d"
setStartDate ""
if dateRange is "now"
setEndDate ""
setStartDate ""
if dateRange is "future"
setEndDate ""
setStartDate "+1d"