如果$ scope.displayMsg为真,则显示内容

时间:2015-07-20 12:39:14

标签: javascript angularjs

我在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);

让我们说currBrowserchromecurrBrowserVersion"43.0.2357.81"(请注意这里的双引号,我认为这是一个字符串)。我只想在$scope.displayMsgtrue的情况下在视图上显示消息,所以我在视图上写了这个消息:

<div ng-if="displayMsg == 'true'">Display something here</div>

但视图中不显示文字。 console.log()显示了这个:

browser chrome
browser version 43.0.2357.81
displayMsg true

显然应该显示消息,为什么不显示?我做错了什么?

1 个答案:

答案 0 :(得分:2)

由于$scope.displayMsg是布尔值,因此表达式displayMsg == 'true'将始终评估为false,因为您要将其与字符串'true'进行比较。

你应该只需要:

<div ng-if="displayMsg">Display something here</div>