I have the following Angular code:
<li ng-repeat="select in Items">
<foo ng-repeat="newin select.values">
{{new.label}}</foo>
How can I use an ng-if condition to look for a specific character:
ng-if="select.name == '?'"
to only display the code when the character is here? The value I have is like 88?77 and the numbers are dynamic but the question mark is always there, I can't seem to filter based on that?
This question is related to
javascript
jquery
css
arrays
angularjs
Do checks like that in a controller function. Your HTML should be easy-to-read markup without logic.
Controller:
angular.module("myApp")
.controller("myController",function(){
var self = this;
self.select = { /* ... */ };
self.showFoo = function() {
//Checks if self.select.name contains the character '?'
return self.select.name.indexOf('?') != -1;
}
});
Page example:
<div ng-app="myApp" ng-controller="myController as vm">
<p ng-show="vm.showFoo()">Bar</p>
</div>
ng-if="select.name.indexOf('?') !== -1"
Only the shortcut syntax worked for me *ngIf.
(I think it's the later versions that use this syntax if I'm not mistaken)
<div *ngIf="haystack.indexOf('needle') > -1">
</div>
or
<div *ngIf="haystack.includes('needle')">
</div>
All javascript methods are applicable with angularjs because angularjs itself is a javascript framework so you can use indexOf() inside angular directives
<li ng-repeat="select in Items">
<foo ng-repeat="newin select.values">
<span ng-if="newin.label.indexOf(x) !== -1">{{newin.label}}</span></foo>
</li>
//where x is your character to be found
Source: Stackoverflow.com