我有一个包含ng-switch
DOM 元素的指令。我需要将事件绑定到 ng-switch 下的 DOM 节点,但由于某种原因 element.find 不会返回 switch 元素下的任何节点!
在下面的示例中,我希望element.find("*")
返回 ng-switch、一个 div 和按钮,但它只返回 ng-switch 和按钮。
我该如何解决这个问题?或者以不同的方式从链接功能到达 ng-switch 下的 DOM 节点?
重现代码:
HTML
<div ng-controller="myCtrl" class="container">
<div my-directive>
<ng-switch on="selection">
<div ng-switch-when="A" class="a">A</div>
<div ng-switch-when="B" class="b">B</div>
<div ng-switch-default>default</div>
</ng-switch>
<button ng-click="switchSelection()" >switch</button>
</div>
</div>
JS
angular.module('myApp', [])
.directive("myDirective", function () {
return {
link: function(scope, element, attrs) {
console.log(element.find("*"));
console.log("Didn't find my divs :(");
}
}
});
function myCtrl($scope) {
$scope.selection="B";
$scope.switchSelection=function(){
if ($scope.selection=="B"){
$scope.selection="A";
}
else{
$scope.selection="B";
}
}
}