jQlite .find() 遍历不工作
jQlite .find() traversing not working
我正在使用 angular 指令,但我对 jQlite .find() 方法没有任何运气:
指令
function cardsList () {
return {
restrict: 'A',
controller: 'CardsController',
templateUrl: 'app/directives/cards-list/cards-list.html',
link: function ($scope, $element, attr, CardsController) {
var cardLink = $element.find('a');
console.log(cardLink);
});
}
}
}
contextCards.directive('cardsList', cardsList);
控制台上记录了一个空 []
。
模板
<li data-ng-repeat="card in cards" class="cards--item">
<a class="cards--link" data-ng-href="#/{{ card.slug }}">{{ card.title }}</a>
</li>
VIEW
<ul class="col-xs-12 cards--list" cards-list></ul>
我只想遍历 <a>
个元素。根据 docs,.find()
仅适用于标签名称,这正是我想要做的。
编辑:如果选择了 link 代表的卡片(如 .current-card
)
,我想向 <a></a>
添加一个 class
根据您的回答,不清楚如何 所选卡片在模型中指定,因此我假设 card
对象(每次迭代的对象ng-repeat
) 持有此标志,例如:card.isSelected
.
然后,您可以使用ng-class
指定根据此值添加哪个CSS class:
<li ng-repeat="card in cards" class="cards--item">
<a class="cards--link"
ng-class="{'current-card': card.isSelected}"
ng-href="#/{{ card.slug }}">{{ card.title }}</a>
</li>
附录:
关于为什么 .find("a")
returns 为空的原始问题的答案,是因为 ngRepeat
指令嵌入了它的内容(这意味着 Angular 将元素取出DOM 在编译期间),并将其放置在 link
函数之后的阶段。
我正在使用 angular 指令,但我对 jQlite .find() 方法没有任何运气:
指令
function cardsList () {
return {
restrict: 'A',
controller: 'CardsController',
templateUrl: 'app/directives/cards-list/cards-list.html',
link: function ($scope, $element, attr, CardsController) {
var cardLink = $element.find('a');
console.log(cardLink);
});
}
}
}
contextCards.directive('cardsList', cardsList);
控制台上记录了一个空 []
。
模板
<li data-ng-repeat="card in cards" class="cards--item">
<a class="cards--link" data-ng-href="#/{{ card.slug }}">{{ card.title }}</a>
</li>
VIEW
<ul class="col-xs-12 cards--list" cards-list></ul>
我只想遍历 <a>
个元素。根据 docs,.find()
仅适用于标签名称,这正是我想要做的。
编辑:如果选择了 link 代表的卡片(如 .current-card
)
<a></a>
添加一个 class
根据您的回答,不清楚如何 所选卡片在模型中指定,因此我假设 card
对象(每次迭代的对象ng-repeat
) 持有此标志,例如:card.isSelected
.
然后,您可以使用ng-class
指定根据此值添加哪个CSS class:
<li ng-repeat="card in cards" class="cards--item">
<a class="cards--link"
ng-class="{'current-card': card.isSelected}"
ng-href="#/{{ card.slug }}">{{ card.title }}</a>
</li>
附录:
关于为什么 .find("a")
returns 为空的原始问题的答案,是因为 ngRepeat
指令嵌入了它的内容(这意味着 Angular 将元素取出DOM 在编译期间),并将其放置在 link
函数之后的阶段。