0

data-colorオブザーバー on属性を持つディレクティブがあります。

# datepicker-directive.coffee
app
.directive 'datepicker', ->
    {
        restrict: 'A'
        require: '?ngModel'
        link: (scope, el, attrs, controller) ->
            el.datepicker({
                language: 'es'
                autoclose: true
            })
            # Update start-date when changeDate
            attrs.$observe 'startDate', (value) ->
                console.log 'startDate'
                el.datepicker 'setStartDate', value
            # Update end-date when changed
            attrs.$observe 'endDate', (value) ->
                console.log 'endDate'
                el.datepicker 'setEndDate', value
            # We have Controller then wire it up
            el.on 'changeDate', (ev) ->
                scope.$apply ->
                    controller.$setViewValue ev.date
            # Garbage collector
            scope.$on '$destroy', ->
                datepicker = el.data 'datepicker'
                if datepicker
                    el.picker.remove()
                    el.data 'datepicker', null
            return
    }

テンプレートでは、このようなディレクティブを使用します

<input type="text" ng-model="ns.int_date_l" data-date-format="dd/mm/yyyy" data-end-date="{{ns.int_date_r}}" datepicker>
<input type="text" ng-model="ns.int_date_r" data-date-format="dd/mm/yyyy" data-start-date="{{ns.int_date_l}}" datepicker>

コントローラーが初めて実行されたときに「startDate」と「endDate」というメッセージがコンソールに表示されますが、ns.int_date_lまたはns.int_date_rが変更されると、DOM の値data-start-datedata-end-date値が変更されますが、$observeトリガーされません。問題はなぜですか?

ここにjsfiddleがあります:(しかし、動作していません

4

0 に答える 0