angular js ng-class将表达式显示为类而不是处理它。

19 浏览
0 Comments

angular js ng-class将表达式显示为类而不是处理它。

我正在尝试使用AngularJS来制作带有高亮菜单项。我阅读了这个问题并尝试实现答案,但是AngularJS没有评估表达式,而只是将其作为类名显示出来。我不知道发生了什么。\n我将菜单项列为JSON,并使用ng-repeat进行迭代。一旦创建了列表项,如果位置URL与菜单项的属性相同(它是一个JSON属性,不是HTML属性),我希望AngularJS添加一个\'active\'类。\n这是相关的HTML代码:\n

      

\n这是我的控制器:\n

.controller('NavbarController', function ($scope, $location) {
        // 导航栏链接
        $scope.menu = [
            {
                item: 'PTC-Testers',
                href: '#/PTC-Testers'
            },
            {
                item: 'articles',
                href: '#/articles'
            },
            {
                item: 'PTC sites',
                href: '#/sites'
            },
            {
                item: 'account reviews',
                href: '#/account_reviews'
            },
            {
                item: 'forum',
                href: '#/forum'
            },
            {
                item: 'contact us',
                href: '#/contact'
            },
            {
                item: 'login',
                href: '#/login'
            }
        ]; // 结束$scope.menu
        $scope.isActive = function (viewLocation) { 
            return viewLocation === $location.path();
        };
    });

\n这是一个较大项目的导航栏部分,我只插入了相关代码。如果您需要更多信息以正确理解问题,请告诉我。

0
0 Comments

问题的原因是在ng-class中没有正确闭合大括号,并且最好将类名放在引号内。解决方法是将类名放在引号内,并正确闭合大括号。如果问题仍然存在,可以尝试直接在HTML标记中写入列表项对象,而不是从控制器中生成JSON对象。这样做后,代码可以按预期工作。

0