我在 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
时在 View 上显示一条消息,所以我在 View 上写了这个:
<div ng-if="displayMsg == 'true'">Display something here</div>
但文本不显示在 View 中。 console.log()
显示:
browser chrome
browser version 43.0.2357.81
displayMsg true
显然应该显示消息,为什么不显示?我做错了什么?
最佳答案
因为 $scope.displayMsg
是一个 bool 值,表达式 displayMsg == 'true'
将始终计算为 false 因为您将它与字符串进行比较 “真”
。
你应该只需要:
<div ng-if="displayMsg">Display something here</div>
关于javascript - 如果 $scope.displayMsg 为真则显示内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31516758/