5
Fondamentalmente, io ho questo codice nel mio modello:Visualizzazione collegamento condizionale in Angular.js
<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>
Come potete vedere sto cercando di visualizzare un URL cliccabile quando entry.url
non è vuoto e un testo normale altrimenti . Funziona bene, ma sembra abbastanza brutto. C'è una soluzione più elegante?
Un altro modo che posso pensare di farlo sta usando 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>
Ma poi mi sarebbe ripetere quasi lo stesso confronto due volte, che sembra ancora peggio. Come vorresti che ti avvicinassi a questo?
questo può aiutare: http://stackoverflow.com/questions/15810278/if-else-statement-in-angularjs-templates – Blauharley
Usa '
risposta
Puoi provare.
<div ng-show="!link">hello</div> <div ng-show="!!link"><a href="{{link}}">hello</a></div>
Ma la
ngSwitch
cui si utilizza dovrebbe andare bene.fonte
2015-01-02 11:00:16
Consiglierei visto un ng-class = "{ 'className': whenEntryURLisWhatever}" nel vostro td, e renderlo cambiare gli stili CSS accessibile, ad esempio:
Poi basta cambiare ciò che accade sulla ng-clic all'interno di una funzione definita nel tuo codice javascript.
Questo sarebbe abbattuto sulla ripetizione del codice, come tuo html potrebbe ora essere:
fonte
2015-01-02 11:02:07
Che ng-clic? Non ho idea di cosa stai parlando. Suggerite di nascondere elementi inutilizzati nei CSS? Com'è meglio di quello che sto facendo ora? –
no, nel tuo css puoi avere '.className span {text-decoration: underline; cursore: puntatore; } 'e tutti gli altri stili che vuoi su un link. Poi all'interno del tuo span, hai 'ng-click =" yourFunction() "' –
Ho modificato la risposta per cercare di spiegarlo meglio. –
Usa doppia negazione, è gettato nel booleana quindi
!!entry.url
restituiràtrue
se la stringa non è vuota.una buona lettura What is the !! (not not) operator in JavaScript? e Double negation (!!) in javascript - what is the purpose?
fonte
2015-01-02 11:07:42 Satpal
È possibile creare una direttiva personalizzato che nasconde la complessità:
HTML
JS
fonte
2015-01-02 11:23:21 pixelbits
Problemi correlati