如何在ngShow中使用子元素的attrs?

时间:2015-05-03 19:44:49

标签: angularjs

我想检查一个元素的孩子是否在其Dictionary<ExceptionTypeThing, int> ExceptionCounts; public void ExceptionSeen(ExceptionTypeThing e) { // Assume initialization ExceptionCounts[e]++; } ExceptionSeen(InvalidProgramException); 指令中有一个类名

ngShow

怎么做?

修改

到目前为止我所做的是为它编写一个函数

<div ng-show="check here if the child img has class name 'active'">
    <img class="...">
</div>

当我在<div ng-show="test(this)">.... <div ng-show="test($event)">.... 函数中对这些参数应用console.log时,我有一些对象,我不明白它代表test的含义,而this代表undefined {1}}我知道我可以在$event使用,但显然不在这里。

1 个答案:

答案 0 :(得分:0)

我认为值得一看“Thinking in AngularJS” if I have a jQuery background?

但是,要回答你的问题,

  • 我创建了example PLNKR
    • 在您将其更改为检查元素的子元素是否具有该类之前,它会回答您的原始问题。
    • 但是,同样的原则适用,所以我会提供我的答案。
  • 值得注意的是,使用指令完成此操作可能是更好的做法。
  • 编辑:我也想参加@ charlietfl的评论。我想你可能会倒退这个问题。

话虽如此,这是一个解决方案:

HTML

<!-- remove 'active' from class, and element is no longer shown -->
<div id="special" ng-show="showElem" class="active">ACTIVE</div>

JS(控制器)

// get the element we want to test
var elem = angular.element(document.querySelector('#special'));
// check if that element has the class 'active'
$scope.showElem = elem.hasClass('active');  // true or false

另一种方法是:

<div id="special" ng-show="elem.hasClass('active');" class="active">ACTIVE</div>

$scope.elem = angular.element(document.querySelector('#special'));

资源