我在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);
让我们说currBrowser
是chrome
而currBrowserVersion
是"43.0.2357.81"
(请注意这里的双引号,我认为这是一个字符串)。我只想在$scope.displayMsg
为true
的情况下在视图上显示消息,所以我在视图上写了这个消息:
<div ng-if="displayMsg == 'true'">Display something here</div>
但视图中不显示文字。 console.log()
显示了这个:
browser chrome
browser version 43.0.2357.81
displayMsg true
显然应该显示消息,为什么不显示?我做错了什么?
答案 0 :(得分:2)
由于$scope.displayMsg
是布尔值,因此表达式displayMsg == 'true'
将始终评估为false,因为您要将其与字符串'true'
进行比较。
你应该只需要:
<div ng-if="displayMsg">Display something here</div>