对于datepicker控件,我在输入元素中添加了一些自定义属性:
<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
答案 0 :(得分:3)
您可以使用$parse服务:
var model = $parse($attributes.changedates)
获得价值
model($scope)
设置值
model.assign($scope, value)
答案 1 :(得分:0)
如果您不需要在指令中设置/更改currentAppointment.start
的值,并且需要检测值何时更改,请使用$watch
(而不是$parse
) :
link: function (scope, element, attrs, ctrl) {
scope.$watch(attrs.changedates, function(value) {
console.log('value=', value);
});
}
fiddle - 在小提琴中,我添加了一个更改currentAppointment.start
值的按钮,因此您可以观察到注意到更改的手表(通过控制台)。