ng-show 工作,但与预期相反

ng-show working, but doing opposite to what is expected

该功能涉及在单击按钮时显示下拉菜单,尽管有些项目我不想显示,具体取决于条件。

        function dropdownMenu(params) {
        var ownFunction = params.data.functieMijnLicentieHouder;
        if (params.data.systeem === 'VVT' && (ownFunction || (!ownFunction && fwgAuthService.userHasClaim('FWGVVT FWG functieonderzoek'))) ){
            return '<div class="io-dropdown"><img src="img/arrow_blue_down.png" ng-click="vm.showMenu(data)"/>' +
                '<ul ng-show="data.showMenu" ng-mouseleave="data.showMenu = false">' +
                '<li>Inzien functiebeschrijving</li>' +
                '<li>Inzien functiemotivatie</li>' +
                '<li ng-show="!!ownFunction"> Muteren functiemotivatie </li>' + // if ownFunction is true.show
                '<li>it works</li>' +
                '</div>';
        } else if (params.data.systeem === 'FWG3' && (ownFunction || (!ownFunction && fwgAuthService.userHasClaim('FWGVVT FWG functieonderzoek'))) ){
            return '<div class="io-dropdown"><img src="img/arrow_blue_down.png" ng-click="vm.showMenu(data)"/>' +
                '<ul ng-show="data.showMenu" ng-mouseleave="data.showMenu = false">' +
                '<li>Inzien functiemotivatie</li>' +
                '<li>Inzien FWG 3 Indeling</li>'+
                '</ul>' +
                '</div>';
        }
    }

ownFunction 的值最初是 true,我在 if 语句和 ng-show 工作之前检查了 console.log,但它显示相反的结果,即 True 时为 False,False 时为 True。我无法理解这种行为

快速浏览一下,您确定 ng-show 中需要两个 !!,这可能是这里的原因吗?

'<li ng-show="!!ownFunction"> Muteren functiemotivatie </li>'

ownFunction 应该在 $scope 对象中,ng-show 才能工作。

而不是

var ownFunction = params.data.functieMijnLicentieHouder;

尝试

$scope.ownFunction = params.data.functieMijnLicentieHouder;