Ich versuche, eine erweiternde Box zu bauen. Also ich mein Setup html wie so:Angularjs - Get Element von Subdirektiven Name
<div class="expand" expand-block>
<label expand-button expanded="true">Style</label>
<ul expand-area>
<li><input type="checkbox" /> AWD/4WD</li>
<li><input type="checkbox" /> Commercial</li>
<li><input type="checkbox" /> Convertable</li>
<li><input type="checkbox" /> Coupe</li>
<li><input type="checkbox" /> Hatchback</li>
<li><input type="checkbox" /> Hybrid/Electric</li>
<li><input type="checkbox" /> Luxury</li>
<li><input type="checkbox" /> Sedan</li>
</ul>
</div>
So, hier ist meine JS:
/* EXPAND BOX DIRECTIVE */
app.directive('expandBlock', function() {
return {
restrict: 'A',
link: function(scope, elem, attrs) {
elem.find('label').bind('click', function() {
var some = elem.find('label').html();
console.log(some);
});
}
};
});
ich machen möchte expand-Bereich ausblenden, wenn ich auf die Schaltfläche erweitern Sie auf. Ich kann das wahrscheinlich größtenteils tun, wenn ich das Element mit "label" erhalte, aber ich würde lieber auf das Attribut zugreifen und es scheint mir unmöglich, einen Weg zu finden, ohne das gesamte DOM zu durchsuchen.
Muss ich eine separate Direktive für den Expand-Button erstellen oder kann ich das alles innerhalb einer einzigen Direktive halten? Wenn ich es in einer einzigen Direktive halten kann, wie bekomme ich das Subelement nach Attribut?
Was mit Ihrem Code falsch ?! –
Wie ich schon sagte: "Ich kann das zum größten Teil tun, wenn ich das Element nach" label "bekomme, aber ich würde lieber auf den Attributnamen zugreifen." Also nichts ist falsch mit meinem Code, mein Code ist da, um ein Beispiel zu geben, was ich gerade mache, das funktioniert, aber jetzt möchte ich dieses Subelement durch das Attribut, nicht durch das Element-Tag – Samir
greifen So können Sie '.find ersetzen ('label') 'to' .find ('[expand-button]') '- es sei denn, ich vermisse etwas .. –