我的jQuery代码如下所示:

  $("body").on("click", ".nav-bar", function(e){
    $(".my-nav").addClass("open");
  });


我想对此进行角度化。有几个不同的控制器/视图将具有.nav-bar类,因此我很确定我将必须使用指令。我只是不确定该怎么做。理想情况下,我可以剥离所有jQuery。

谢谢

最佳答案

创建一个指令:

.directive("navbarAction", function() {
    return {
        restrict: 'A', //<---Look up what this does, there are other options
        link: function(scope, elem, attrs) {
            //Using jQuery
            $(elem).click(function() {
                $(".my-nav").addClass("open");
            });
        }
    }
});


然后在.nav-bar元素中添加一个navbar-action属性。

样品:

<input type='button' value='Click me!' navbar-action />


Angular还附带了jqLit​​e(您猜对了,它是jQuery的精简版本),因此在导入整个jQuery库之前,请查看是否可以使用jqLit​​e完成所需的工作。

10-07 19:14
查看更多