1

日付ピッカー コントロールの場合、いくつかのカスタム属性を入力要素に追加しました。

<input id="inputDatepicker" ng-model="currentAppointment.date" data-date-format="dd.mm.yyyy" datepicker changedates="currentAppointment.start">

そのために、datepicker をビルドするためのディレクティブを作成しました。

.directive('datepicker', function ($filter) {
    return {
      restrict: 'A',
      require: '?ngModel',
      link: function ($scope, $element, $attributes, $ctrl) {       

        $scope[$attributes.changedates] ... do not work

        $element.datepicker();    
      }
    }
});

changedates-attribute に記載されているスコープ変数にアクセスするにはどうすればよいですか? 上記の私の例では、アクセスしたい$scope.currentAppointment.start

4

2 に答える 2

3

$parseサービスを使用できます。

var model = $parse($attributes.changedates)

価値を得るために

model($scope)

値を設定する

model.assign($scope, value)
于 2013-05-15T09:44:22.090 に答える
0

currentAppointment.startディレクティブでの値を設定/変更する必要がなく、値が変更されたことを検出する必要がある場合は、 $watch( の代わりに$parse)を使用します。

link: function (scope, element, attrs, ctrl) {
    scope.$watch(attrs.changedates, function(value) {
        console.log('value=', value);
    });
}

fiddle- フィドルには、 の値を変更するボタンを含めたcurrentAppointment.startので、(コンソールを介して) 変更に気付いた時計を観察できます。

于 2013-05-15T15:48:51.913 に答える