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-date
とdata-end-date
値が変更されますが、$observe
トリガーされません。問題はなぜですか?
ここにjsfiddleがあります:(しかし、動作していません