AngularJS - JQuery:ngInclude指令 - DOM

时间:2014-04-15 11:39:41

标签: javascript jquery angularjs angularjs-ng-include

我的模板引导包含JS,因为它们被称为JS没有被执行,你有一个想法。

这是我的Index.html

<body ng-app>
    <ng-include src="'sidebar.html'"></ng-include>
    <ng-include src="'navbar.html'"></ng-include>
</body>

我的navbar.html

<header class="navbar navbar-inverse" role="banner">
            <button type="button" id="menu-toggler">
                ...
            </button>

在我的模板库中有 - theme.js

$("#menu-toggler").click(function (e) {
    $("body").toggleClass("menu");
    e.stopPropagation();
  });

当在Body元素中有'menu'类时,CSS显示侧边栏

谁知道它为什么不显示? (Demo jsfiddle

1 个答案:

答案 0 :(得分:1)

不要像使用jQuery一样使用Angular;将ng-class添加到<body>,将ng-click添加到您的按钮并处理来自Angular的事件:

<body ng-class="{'menu': bodyIsMenu} ng-controller="Ctrl">
    ...
    <button ng-click="toggle()">...</button>
    ...
</body>

注意我将控制器放在正文中,以便toggle()bodyIsMenu位于同一范围内。 JS:

function Ctrl($scope) {
    $scope.bodyIsMenu = false;

    $scope.toggle = function() {
        $scope.bodyIsMenu = !$scope.bodyIsMenu;
    };
}

同样非常有趣的阅读here