AngularJS - ng-show不显示项目

时间:2017-04-11 15:02:10

标签: javascript angularjs

所以我在控制器里面有这个:

var myApp = angular.module('app', [], function ($interpolateProvider) {
    $interpolateProvider.startSymbol('[%');
    $interpolateProvider.endSymbol('%]');
});

myApp.controller('MyController', function ($scope) {
    $scope.show = [];

    // confirmed this returns true when intended
    $scope.showElement = function (id) {
        return ($scope.show.indexOf(id) > -1);
    };
});

我的HTML结构如下,my-class使用display: none;和其他规则,这些规则对于显示此元素是必不可少的。由于使用它的实例数量,我不能简单地删除类或更改其规则。在应用程序的所有其他实例中,这可以按预期工作。

<div class="my-class" ng-show="showElement(obj.id)">
    ...
</div>

如果更改了基础变量$scope.show,则页面加载时不会显示该元素,也不会更新其外观。

1 个答案:

答案 0 :(得分:0)

以前的开发团队是手动(通过使用深度和混淆的Javascript)在其他使用它的实例中添加一个额外的CSS类。

我的解决方案是使用visible指令添加ng-class类:

<div class="my-class" ng-class="{'visible': showElement(obj.id)}">
    ....
</div>