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

标签 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 时在 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/

相关文章:

javascript - 如何根据属性选择功能

javascript - 其他用户接收消息

javascript - angularjs ngRepeat 指令不触发列表中其他项目的摘要

javascript - AngularJS 获取没有表单的无效元素组

javascript - Protractor - 比较数字

javascript - AngularJS ng-绑定(bind)到动态变量名称

javascript - 在url末尾添加字符串

Javascript - 基于动态填充下拉菜单的转到 url

javascript - 使用 gem browserify-rails 时,它不反射(reflect)文件更改

javascript - AngularJS $http 获取服务 'SyntaxError: Unexpected token }' 问题