所以我在控制器里面有这个:
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
,则页面加载时不会显示该元素,也不会更新其外观。
答案 0 :(得分:0)
以前的开发团队是手动(通过使用深度和混淆的Javascript)在其他使用它的实例中添加一个额外的CSS类。
我的解决方案是使用visible
指令添加ng-class
类:
<div class="my-class" ng-class="{'visible': showElement(obj.id)}">
....
</div>