通过指令中的id将Class添加到元素

琳达

我正在向其中一个视图添加分页,并且希望当前页面获得bootstrap的页面class="active"由于只有一个HTML文件,并且当前页面是通过传递的$routeParams,因此总页面数可能会更改,因此我需要使用创建分页ng-repeat并在其后添加活动类。我创建了一条指令,应该<li>在创建正确的标记后执行此操作,但不会执行该操作。我不知道表达式的时间顺序是否仍然存在问题,或者我是否需要以与指令内不同的方式处理DOM元素。

在这里链接

代码:

<ul class="pagination pagination-sm">
    <li ng-repeat="p in pages()" id="{{p}}" mark-active-page page="{{currentpage}}" repeat="{{p}}"><a href="">{{p}}</a></li>
</ul>

控制器功能和变量:

$scope.currentpage = 1;
$scope.pagecount = 4; //total pages

$scope.pages = function() {
    var input = [];
    for (var i = 1; i <= $scope.pagecount; i++) {
        input.push(i);
    }
    return input;
};

指令(以后可能会变得更干净。atm我的重点是jQuery):

app.directive('markActivePage', function($parse) {
    return {
        restrict: 'A',
        scope: {
            page: '@',
            repeat: '@',
        },
        link: function(scope, elem, attrs) {
            attrs.$observe('repeat', function(r){
                attrs.$observe('page', function(p){
                    if(r==p) {
                        var id = '#' + p;
                        //I get the right id here without a problem, but the jQuery doesn't work
                        angular.element(id).addClass('active');
                    }
                });                  
            });          
        }
    };
});
尼吉利

您可以使用内置的角度指令(例如ng-class和ng-click)来简化此操作。见下文:

<li ng-click="setCurrentPage(p)" ng-class="{active: currentpage === {{p}}}" ng-repeat="p in pages()" id="{{p}}"><a href="">{{p}}</a></li>

然后,您可以删除markActivePage并将其放在您的控制器中。

$scope.setCurrentPage = function(p) {
  $scope.currentpage = p;
}

希望这可以帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过angularjs中的指令将动态模型添加到新创建的元素中

来自分类Dev

通过angularjs中的指令将动态模型添加到新创建的元素中

来自分类Dev

将签名添加到不带“ id”的XML元素中

来自分类Dev

如何将元素的属性添加到角度指令

来自分类Dev

从指令动态将角度属性添加到元素

来自分类Dev

将类添加到元素的单元测试指令

来自分类Dev

AngularJS-将指令动态添加到元素

来自分类Dev

如何将元素的属性添加到角度指令

来自分类Dev

使用compile函数将指令添加到元素

来自分类Dev

将类添加到具有angular且没有jquery的指令内的元素中

来自分类Dev

如何将ng-repeat动态添加到angular指令中的元素?

来自分类Dev

使用指令将多行项目添加到表中

来自分类Dev

从最后一个元素开始按顺序将class添加到元素的集合中

来自分类Dev

通过Javascript将JSON文件中的元素添加到HTML中

来自分类Dev

jQuery-通过ID加载元素并添加到div

来自分类Dev

是否可以将ID添加到已经具有ID的元素中

来自分类Dev

使用另一个指令将指令添加到元素

来自分类Dev

通过用户将元素添加到arraylist

来自分类Dev

通过:before将图标添加到<input>元素

来自分类Dev

通过循环将类添加到多个HTML元素

来自分类Dev

Prolog:通过read / 1将元素添加到列表

来自分类Dev

通过定义将元素添加到结构

来自分类Dev

通过定义将元素添加到结构

来自分类Dev

如何通过验证用户输入仅是数字来将元素添加到数组中?

来自分类Dev

通过useState react将类添加到.map函数中的元素

来自分类Dev

通过编辑文本字段将元素添加到视图列表中

来自分类Dev

如何通过使用ng-click将元素添加到表单中?

来自分类Dev

是否可以通过编程将<remove>元素添加到web.config中的httpmodule?

来自分类Dev

如何在模板输入时使用Angular的ngFocus指令(或嵌入在Ionic Framework中的任何指令)将元素添加到元素中?

Related 相关文章

  1. 1

    通过angularjs中的指令将动态模型添加到新创建的元素中

  2. 2

    通过angularjs中的指令将动态模型添加到新创建的元素中

  3. 3

    将签名添加到不带“ id”的XML元素中

  4. 4

    如何将元素的属性添加到角度指令

  5. 5

    从指令动态将角度属性添加到元素

  6. 6

    将类添加到元素的单元测试指令

  7. 7

    AngularJS-将指令动态添加到元素

  8. 8

    如何将元素的属性添加到角度指令

  9. 9

    使用compile函数将指令添加到元素

  10. 10

    将类添加到具有angular且没有jquery的指令内的元素中

  11. 11

    如何将ng-repeat动态添加到angular指令中的元素?

  12. 12

    使用指令将多行项目添加到表中

  13. 13

    从最后一个元素开始按顺序将class添加到元素的集合中

  14. 14

    通过Javascript将JSON文件中的元素添加到HTML中

  15. 15

    jQuery-通过ID加载元素并添加到div

  16. 16

    是否可以将ID添加到已经具有ID的元素中

  17. 17

    使用另一个指令将指令添加到元素

  18. 18

    通过用户将元素添加到arraylist

  19. 19

    通过:before将图标添加到<input>元素

  20. 20

    通过循环将类添加到多个HTML元素

  21. 21

    Prolog:通过read / 1将元素添加到列表

  22. 22

    通过定义将元素添加到结构

  23. 23

    通过定义将元素添加到结构

  24. 24

    如何通过验证用户输入仅是数字来将元素添加到数组中?

  25. 25

    通过useState react将类添加到.map函数中的元素

  26. 26

    通过编辑文本字段将元素添加到视图列表中

  27. 27

    如何通过使用ng-click将元素添加到表单中?

  28. 28

    是否可以通过编程将<remove>元素添加到web.config中的httpmodule?

  29. 29

    如何在模板输入时使用Angular的ngFocus指令(或嵌入在Ionic Framework中的任何指令)将元素添加到元素中?

热门标签

归档