Angularjs指令 - 按类名选择下一个元素

时间:2014-01-16 08:17:50

标签: angularjs jqlite

我有以下HTML:

<div>
  <input type="text" ng-model="search.q" special-input>
  <ul class="hidden">...</ul>
  <ul class="hidden bonus">...</ul>
</div>

以下指令:

myApp.directive('specialInput', ['$timeout', function($timeout)
{
  return {
    link: function(scope, element) {
      element.bind('focus', function() {
        $timeout(function() {
          // Select ul with class bonus
          element.parent().find('.bonus').removeClass('hidden');
        });
      });
    }
  }
}]);

我想使用jqLit​​e选择ul.bonus但找不到方法。我尝试使用.next(“。bonus”),但完全忽略了选择器并选择了第一个ul。有谁知道为什么我不能这样做?

P.S。我只是在没有jQuery的情况下依赖AngularJS内部jqLit​​e。

谢谢!

1 个答案:

答案 0 :(得分:2)

你不需要指令来实现这个目标:

<div>
  <input type="text" 
             ng-model="search.q" 
             ng-focus="bonus=true" 
             ng-blur="bonus=false">
  <ul class="hidden">...</ul>
  <ul ng-show="bonus">...</ul>
</div>

如果您的需求更复杂,请在控制器中决定bonus状态。