0

私のテンプレート ブートストラップには 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要素に「メニュー」クラスがある場合、CSSはサイドバーを表示します

なぜそれが表示されないのか誰が知っていますか?? (デモ jsfiddle )

4

1 に答える 1

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;
    };
}

ここでも非常に興味深い読み物です

于 2014-04-15T11:57:17.443 に答える