tworzę dyrektywę dateRangePicker
że Oświadczam tak:Deklarowanie kompleks obiekt w odizolowanych zakresu
<date-range-picker start="schedule.start" end="schedule.end"></date-range-picker>
Moja dyrektywa jest zadeklarowany jako następujący:
.directive("dateRangePicker", function() {
return {
restrict: 'E',
require: '^form',
scope: {
start: '=',
end: '='
},
replace: true,
templateUrl: 'dateRangePicker.tpl.html',
link: function (scope, elm, attrs, ctrl) {
Problem jest, że mój szablon: dateRangePicker.tpl.html
inicjuje zakres podrzędny (komponent DatePicker angular-ui wykonuje to za pośrednictwem odpowiedniego kontrolera), więc każda próba zapisu wartości do scope.start
lub scope.end
nie wpłynie na zakres dyrektywy.
Chciałbym zadeklarować moją samodzielnie zakresu, tak, że konflikt nie wystąpią:
scope.schedule.start
i scope.schedule.end
.
Próbowałem to zrobić:
return {
restrict: 'E',
require: '^form',
scope: {
schedule: {
start: '=start',
end: '=end'
}
}
Ale ten błąd:
Error: 'undefined' is not a function (evaluating 'definition.match(LOCAL_REGEXP)')
Czy istnieje sposób, aby to osiągnąć stosując pojedyncze zakresu?
Po prostu nie chcę rozmnażać zakresów przez scope:false
(to działa, przetestowałem), aby zachować dobrą enkapsulację.
doskonała, dzięki – Mik378