首页 > 解决方案 > 菜单项取决于用户文章

问题描述

在我的应用程序中,我有多个用户 rol0(管理员、分销商、买家)。默认情况下,我显示 3 个菜单项。但是,如果用户在他的文章列表中有articleAA我显示他菜单中的新项目仅适用于这篇文章和另一个默认项目。同样,如果他有articleBB我给他看这篇文章的菜单项。登录时,我检查这个并显示菜单

$scope.allArticles = allArticlesFactory.get();
$scope.allArticles.$promise.then(function(data) {

angular.forEach(data, function(key, value){
    switch (key.type){
        case 'articleAA':
            $scope.articleAA= true;
            break;
        case 'articleBB':
            $scope.articleBB= true;
            break;
        default:
        $scope.articleAA= "";
        $scope.articleBB= "";
    }
});
});
})

在带有 的菜单中ng-if,我检查值

<li ng-if="articleAA === true"><a class="aktivniItem" ui-sref="articleAA">articleAA</a></li>
<li ng-if="articleBB === true"><a class="aktivniItem" ui-sref="articleBB">articleBB</a></li>

问题:当我像我一样登录时,admin我得到了所有菜单项,这没关系。当我像拥有所有菜单项的买家一样登录时,这没关系articleAAarticleBB但是,当我像另一个没有这篇文章的买家一样登录时,这两个菜单仍然存在。当我刷新时,这个特殊的菜单项消失了。

我尝试在控制器的顶部放置

$scope.articleAA= "";
$scope.articleBB= "";

并且

$scope.articleAA= false;
$scope.articleBB= false;

但是,同样的问题也在这里。下一个用户总是从前一个用户那里得到菜单,但如果他刷新,一切都好。

默认菜单 | Home | Articles | Info |

如果用户有文章AA | Home | Articles | Info | ArticleAA |

如果用户有文章BB | Home | Articles | Info | ArticleBB |

如果用户有 articleAA 和 articleBB | Home | Articles | Info | ArticleAA | ArticleBB | Thnx

标签: angularjs

解决方案


推荐阅读