2

我使用角带 datePicker

<input type="text" name="dateFrom" ng-model="dateFrom" bs-datepicker                           
    data-end-date="{{endDate}}" data-start-date="{{startDate}}" />

当从代码更改 endDate 或 startDate 时,它​​会在 DOM 中更新,但日期选择器仍然不知道此更改,是否需要触发某种更新?

更改是通过同一范围内的with 函数完成的,然后为andng-click设置一个新值。endDatestartDate

像这样(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"]'

然后当setDateRange被调用时,我做了一些辅助方法来调用datepicker setEndDateandsetStartDate方法:

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 人员现在提供的日期选择器,因此它在 Angular 中具有特别好的集成:http: //angular-ui.github.io/bootstrap/

于 2013-10-22T14:18:39.073 回答