2016-05-23 7 views
1

私は角の要素として格納しているサイドバーを崩壊しようとしています。私は、テンプレートURLと私のページコードでトグルスクリプトを使用しようとしましたが、どちらもそれをやっていません。サイトの他のすべてのページで、私はまだ非角形のサイドバーを持っており、問題なく折り畳まれています。Jquery and Angularjs

heres the problem

plunkr

<div ng-app="appHeaderApp"> 
<div ng-controller="sidebarcon"> 
    <div ng-repeat="stab in mySideTabs"> 
    <app-sidebar info="stab"></app-sidebar> 
    </div> 
    <script> 
    $("#menu-toggle").click(function(e) { 
     e.preventDefault(); 
     $("#wrapper").toggleClass("toggled"); 
    }); 
    </script> 
</div> 
+3

これは角度を使用する正しい方法ではありません。 –

+0

Angularを使用してサイドバーを折りたたんでいますか? –

+0

サイドバーを保存するには角度を使用します。リンクやレイアウトを変更すると、サイト全体で変更されます。私がする必要があるのは何とかそれを崩壊させることです –

答えて

2

このため、短い答えは、あなたが正しく角度を使用していないということです。角度を使用している場合は角度を使ってください:)

サイドバーの指示を使用しているようです。折りたたみ機能は "toggled"クラスによって制御されているため、ng-classを使用してこれを切り替えることができます。これは条件付きでクラスを適用 <div ng-class="{toggled: toggled}"></div>

だから我々は次のような何かを行うことができます。そして、サイドバーをトグルあなたのボタンで、あなたのような何かを行うことができます。 <button ng-click="toggled = !toggled">Toggle Sidebar</button>

をこのボタンは、サイドバー上のクラスを切り替えるれる、前後にブール「切り替え」を切り替えます。

+0

私は#menu-toggleを完全に取り払いますか? –

+0

jQueryのクリックハンドラを意味しますか?ええ、あなたはそれを必要としません。 Angularがあなたのためにクリックイベントを処理させるようにしましょう。 –

+0

大丈夫です。どのように私はトグルについて行くだろうか? jqueryは状態を変更するためにブール値を定義していませんか? –