【问题标题】:how to show previous div of clicked div in angular.js如何在angular.js中显示单击的div的前一个div
【发布时间】:2013-11-07 11:44:13
【问题描述】:

我有一个这样的 html

  <div  class="main" ng-controller="firstcontroller">
       <div class="submain">
           <div class="first" ng-show="display">displayed</div>
           <div class="second" my-directive>click</div>
       </div>
       <div class="submain">
           <div class="first" ng-show="display">displayed</div>
           <div class="second" my-directive>click</div>
       </div>
       <div class="submain">
           <div class="first" ng-show="display">displayed</div>
           <div class="second" my-directive>click</div>
       </div>
 </div>

我有这样的控制器

     app.controller('firstcontroller',function($scope)
     {
         $scope.display=false;

     });

我的指令编码是这样的

 app.directive('myDirective',function(scope, element, attrs)
 {
    return function()
    {
        element.bind('click',function()
       {
             element.prev().show();
            //alert(element.prev().attr('class'));

        //   element.parent().find('.main').append('<div>Some text</div>')
       });


    }

 });

如果 div 的 class name 为 first ,这里最初 div 将被隐藏,只有 class name second 的 div 会被显示。因此,当我们单击单击 div 时,我们必须仅显示该单击 div 的前一个 div .....如何在 angular.js 中显示单击 div 的前一个 div?

【问题讨论】:

    标签: javascript jquery angularjs


    【解决方案1】:

    我觉得这个问题缺少信息。例如。 .submain div 是硬编码的,还是通过迭代创建的?

    如果确实如此,则该指令是多余的。将 HTML 更改为:

    <div  class="main" ng-controller="firstcontroller">
       <div class="submain">
           <div class="first" ng-show="display[0]">displayed</div>
           <div class="second" ng-click="display[0] = !display[0]">click</div>
       </div>
       <div class="submain">
           <div class="first" ng-show="display[1]">displayed</div>
           <div class="second" ng-click="display[1] = !display[1]">click</div>
       </div>
       <div class="submain">
           <div class="first" ng-show="display[2]">displayed</div>
           <div class="second" ng-click="display[2] = !display[2]">click</div>
       </div>
    </div>
    

    还有控制器:

     app.controller('firstcontroller',function($scope) {
         $scope.display=[false, false, false];
     });
    

    【讨论】:

    • 你应该调整控制器中的布尔数组。
    猜你喜欢
    • 1970-01-01
    • 2016-12-17
    • 2015-10-15
    • 2016-11-27
    • 1970-01-01
    • 2017-07-22
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多