Reputation: 18660
I have this piece of code in AngularJS/Javascript:
var currBrowser = deviceDetector.browser,
currBrowserVersion = deviceDetector.browser_version;
switch (currBrowser) {
case 'chrome':
if (parseInt(currBrowserVersion) <= 43) {
$scope.displayMsg = true;
}
break;
case 'safari':
if (parseInt(currBrowserVersion) <= 8) {
$scope.displayMsg = true;
}
break;
case 'ie':
if (parseInt(currBrowserVersion) <= 11) {
$scope.displayMsg = true;
}
break;
case 'firefox':
if (parseInt(currBrowserVersion) <= 39) {
$scope.displayMsg = true;
}
break;
default:
$scope.displayMsg = true;
break;
}
console.log('browser' + currBrowser);
console.log('browser version' + currBrowserVersion);
console.log('displayMsg' + $scope.displayMsg);
Lets said that currBrowser
is chrome
and currBrowserVersion
is "43.0.2357.81"
(note double quotes here, this, I think, is a string). I want to display a message on the view only if $scope.displayMsg
is true
so I wrote this on the view:
<div ng-if="displayMsg == 'true'">Display something here</div>
But text isn't displayed at view. The console.log()
show this:
browser chrome
browser version 43.0.2357.81
displayMsg true
Apparently message should be shown, why is not? What I am doing wrong?
Upvotes: 1
Views: 46
Reputation: 4480
Because $scope.displayMsg
is a boolean value, the expression displayMsg == 'true'
will always evaluate to false because you are comparing it to a string 'true'
.
You should only need to have:
<div ng-if="displayMsg">Display something here</div>
Upvotes: 2