Nowość w Angular, starając się uzyskać harmonię z Zurb Foundation 4. Przykład; Próbuję użyć komponentu http://foundation.zurb.com/docs/components/reveal.html.Wrapping Foundation 4 ujawnia w Angular
prosta podejście wydawało się zawijać jak dyrektyw:
directive('modal', function() {
return {
template: '<div ng-transclude id="notice" class="reveal-modal">' +
'<a close-modal></a>' +
'</div>',
restrict: 'E',
transclude: true,
replace: true,
scope: {
'done': '@',
},
transclude: true,
link: function(SCOPE, element, attrs, ctrl) {
SCOPE.$watch('done', function (a) {
// close-modal
});
}
}
}).
directive('closeModal', function() {
return {
template: '<a ng-transclude href="#" class="close-reveal-modal">x</a>',
restrict: 'A',
transclude: true,
replace: true
}
}).
directive('showModal', function() {
return {
template: '<a ng-transclude class="reveal-link" data-reveal-id="notice" href="#"></a>',
restrict: 'A',
transclude: true,
replace: true,
}
});
Działa to dobrze, aż do punktu, na przykład, można korzystać z modal, aby pokazać różne zawiadomienia z szablonu:
<modal done="">
<div ng-include src="'partials/notices/' + notice + '.html'"></div>
</modal>
<select ng-model="notice" ng-options="n for n in ['notice-1', 'notice-2']">
<option value="">(blank)</option>
</select>
<a show-modal>show modal</a>
Jednakże, gdy robi się lepki, to jeśli chcę wywołać tryb modalny/modalny ze sterownika/w określonym zdarzeniu (np. W zakresie $watch
). Zakładam, że moja dyrektywa wymaga kontrolera, aby wywołać kliknięcie, ale czy byłaby to dobra praktyka kątowa?
Czy możesz dodać skrzypce/plnkr? – GFoley83