I have the following ngSwitch:
<p ng-switch="status">
<span ng-switch-when="wrong|incorrect">
Wrong
</span>
<span ng-switch-default>
Correct
</span>
</p>
As you can see, I have the text Wrong
for two options wrong
and correct
. I have tried (as you can see) to use the pipe |
, but that doesn't work. Any suggestions ?
For angular >=v1.5.10,
You can do it by adding
ng-switch-when-separator="|"
tong-when
node. see example in documentation.see discussion here https://github.com/angular/angular.js/issues/3410 Note, based on my experience it doesn't work with numbers...yet?
This is almost same with using a ng-if, but the advantage of this is that you can use ng-switch-when="true" or default or false multiple times within main ng-switch.
Live : http://jsfiddle.net/8yf15t2d/
You can add another switch case.
Example:
Live example: http://jsfiddle.net/choroshin/Zt2qE/2/
You can add a filter to the
status
that maps values that mean the same thing into the same value.Then you simply
Although in your case, you may have just wanted to print a message so you could have pulled the message from a dictionary...
Something like:
You can't have multiple conditions with a single
ng-switch-when
.One alternative is to use an
ng-if
, but in the case of error handling, I prefer to populate an error variable on the scope in the controller, and useng-show=error
.This cannot be achieved with angular's base directives, but if you like, you could write your own directive to implement this, and could already interface with the existing ngSwitch directive.
ngSwitchController has one property
cases
which is a map. Every case key is prefixed with an!
and the default case is equal to?
. Each case value is an object with two properties:transclude
andelement
.Warning: Unlike ngModelController, ngSwitchController is not published API, so it's subject to change.
Based off of the original ngSwitchWhenDirective, we can construct a multiswitchWhen, that will work with all existing ngSwitch, ngSwitchWhen, and ngSwitchDefault directives without conflict.
Example plunker: http://plnkr.co/edit/K9znnnFiVnKAgGccSlrQ?p=preview