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

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

本文关键字:工作 ng-show      更新时间:2023-09-26

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

        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,我用控制台检查过.log之前语句和 ng-show 是否有效,但它显示相反的结果,即真时为假,假时为真。我无法理解这种行为

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

而不是

var ownFunction = params.data.functieMijnLicentieHouder;

尝试

$scope.ownFunction = params.data.functieMijnLicentieHouder;

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

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