Ostrzeżenie: Przednie nowe kątowe.Indywidualna dyrektywa AngularJS ng-show/ng-hide
Próbuję utworzyć niestandardowy widget, który będzie domyślnie wyświetlał link "Odpowiedz", a po kliknięciu powinien być ukryty, a tekst powinien być wyświetlany. Oto, co mam do tej pory, ale to nie działa:
.directive('replybox', function ($rootScope) {
var linkFn = function (scope, element, attrs) {
var label = angular.element(element.children()[0]);
scope.showInput = false;
label.bind("click", textbox);
function textbox() {
scope.showInput = true;
}
};
return {
link:linkFn,
restrict:'E',
scope:{
id:'@',
label:'@',
showInput:'='
},
template:'<a ng-hide="showInput">label</a><textarea ng-show="showInput"> </textarea>',
transclude:true
};
})
Wszelkie wytyczne zostaną docenione. Dzięki!
mogę prosić o całkowitym przykład? – honzajde
@ user271996 Istnieje jsFiddle z pełnym przykładem dołączonym do odpowiedzi. Czy nadal czegoś brakuje? –
Prawdopodobnie można powiązać funkcję kliknięcia etykiety poprzez ng-kliknięcie w szablonie zamiast ręcznego dołączania go w funkcji łącza. –