9
votes

Sinon si dans le modèle JS angulaire

J'ai besoin d'utiliser autrement si dans le modèle angularjs .Quelle est la syntaxe? Par exemple, dans C, j'écrirais le code comme ci-dessous: xxx

mon code: xxx


3 commentaires

Il pourrait être plus clair de le faire une propriété calculée.


Je ne cherche pas si sinon "sinon si"!


BTW Votre deuxième extrait est en contradiction avec le premier ...


5 Réponses :


2
votes

Ici, c'est, mais vous devriez vraiment essayer d'éviter de disposer de ce type de logique compliquée à l'intérieur des modèles, en règle générale.

{{ data.sender == 'system' ? data.receiver : data.sender == 'mail' ? data.receiver : data.sender }}


0 commentaires

1
votes

Si vous avez besoin d'un elporif strong> dans un modèle angulaire, vous pouvez utiliser un opérateur ternaire comme dans C / C ++

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="quetion_app">

  <div ng-controller="quertion_controller">
    {{data}}
    <br>
    <br>
    {{ data.sender=='system'
    < 4 ? data.receiver : data.sender=='mail' ? data.receiver : data.sender}} </div>

  </div>


0 commentaires

14
votes
{{(data.sender === 'system' || data.sender === 'mail') ? data.receiver : data.sender}}

4 commentaires

Vous devriez probablement penser à faire un filtre au lieu d'exploitants ternaires imbriqués.


oui cette réponse est uniquement à l'affaire OP, mais pas générale


Merci je faisais le complexe logique!


Qu'est-ce que j'ai 3 cas différents, cela ne fonctionnera pas.



8
votes

Il n'y a pas de syntaxe IF-else dans des modèles angulaires que vous recherchez. Trop de logique dans les modèles rend difficile la maintenance. Voici deux solutions possibles:

<span ng-switch="data.sender">
    <span ng-switch-when="mail">{{data.receiver}}</span>
    <span ng-switch-when="system">{{data.receiver}}</span>
    <span ng-switch-default>{{data.sender}}</span>
</span>


0 commentaires

1
votes

Ce type de logique appartient vraiment au contrôleur ou au service responsable de la configuration des données dans votre portée $. La placer dans votre vue apporte beaucoup de logique à la vue inutilement et provoque également que la logique doit être exécutée comme une montre à la fois coûteuse et inutile.

dans le code qui établit des données que vous pourriez avoir: < Pré> xxx

puis dans votre vue, vous liez au data.displayed (indicatif) Sender: xxx


0 commentaires