2

アンギュラーストラップの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 関数を介して行われ、新しい値がendDateandに設定され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 setEndDatesetStartDate

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"
4

1 に答える 1

1

setStartDate() および setEndDate() 呼び出しを使用してみてください。

http://bootstrap-datepicker.readthedocs.org/en/latest/methods.html#setstartdate

または、現在 Angular の人々によって提供されている datepicker を見ることができるので、Angular 内で特にうまく統合されています: http://angular-ui.github.io/bootstrap/

于 2013-10-22T14:18:39.073 に答える