5
Grundsätzlich habe ich diesen Code in meiner Vorlage:angezeigte Link bedingt in Angularjs
<tr ng-repeat="entry in tableEntries">
<td ng-switch="entry.url == ''">
<span ng-switch-when="false"><a href="{{entry.url}}">{{entry.school}}</a></span>
<span ng-switch-when="true">{{entry.school}}</span>
</td>
...
</tr>
Wie Sie sehen, ich versuche, eine anklickbare URL angezeigt wird, wenn entry.url
nicht leer und ein Klartext nichts anderes ist . Es funktioniert gut, aber es sieht ziemlich hässlich aus. Gibt es eine elegantere Lösung?
Eine andere Möglichkeit, die ich denken kann, es zu tun ist mit ng-if
:
<td>
<span ng-if="entry.url != ''"><a href="{{entry.url}}">{{entry.school}}</a></span>
<span ng-if="entry.url == ''">{{entry.school}}</span>
</td>
Aber dann würde ich zweimal fast den gleichen Vergleich wiederholen, was noch schlimmer aussieht. Wie würdest du das angehen?
dies kann Ihnen helfen: http://stackoverflow.com/questions/15810278/if-else-statement-in-angularjs-templates – Blauharley
Verwenden Sie '
Antwort
Sie können es versuchen.
<div ng-show="!link">hello</div> <div ng-show="!!link"><a href="{{link}}">hello</a></div>
Aber die
ngSwitch
, die Sie verwenden, sollte in Ordnung sein.Quelle
2015-01-02 11:00:16
Ich würde empfehlen, eine ng-Klasse mit = "{ 'classname': whenEntryURLisWhatever}" in Ihrem td, und machen es die CSS-Stile ändern zugegriffen, zB:
Dann einfach ändern, was passiert, auf Klicken Sie mit der linken Maustaste auf eine Funktion, die in Ihrem JavaScript-Code definiert ist.
auf Codewiederholung abgeholzt Dies würde, wie jetzt Ihr html sein könnte:
Quelle
2015-01-02 11:02:07
Was ng-click? Ich habe keine Ahnung, wovon du sprichst. Schlägst du vor, nicht verwendete Elemente in CSS zu verstecken? Wie ist es besser als das, was ich jetzt mache? –
überhaupt nicht, in Ihrem CSS können Sie '.ClassName span {text-Dekoration: unterstreichen; Cursor: Zeiger; } 'und andere Stile, die Sie für einen Link verwenden möchten. Dann haben Sie innerhalb Ihrer Spanne 'ng-click =" yourFunction() "' –
Ich habe die Antwort bearbeitet, um es besser zu erklären. –
Verwenden doppelte Negation, es warf in boolean so
!!entry.url
true
zurück, wenn der String nicht leer ist.Ein gutes lesen What is the !! (not not) operator in JavaScript? und Double negation (!!) in javascript - what is the purpose?
Quelle
2015-01-02 11:07:42 Satpal
Sie eine benutzerdefinierte Richtlinie erstellen können, die die Komplexität verbirgt:
HTML
JS
Quelle
2015-01-02 11:23:21 pixelbits
Verwandte Themen