7

AngularJSバージョン1.0.5とAngular UI(Bootstrap)0.4.0を使用しています。 私はUIのタブとAngularのフォームの2つの機能を統合しようとしています。AngularJS&UI - タブ内でフォームを外部にアクセスできません

私はフォームをネストしています。 1つのフォーム(outerForm)がタブセット全体をラップします。 他のフォーム(innerForm)は1つのタブ内にあります。

innerFormの有効性に応じて有効にするか無効にするボタンがありますか?

フォームの外側からinnerForm。$ validにアクセスしようとすると、動作しません。ここで

はplunkerです: 今http://plnkr.co/edit/sEz8TG?p=preview

、私は通常のブートストラップと同じことをしようとすると、動作するように見えるん:インナーフォームは、通常のdiv内に存在する場合 http://plnkr.co/edit/Somic4?p=preview

を、私がすることができます外部からアクセスしてください。 角度UIの特別な「タブ」構文を使用すると、それはもはや機能しません。

答えて

5

タブセットディレクティブは、外部フォームスコープの一部ではないローカルスコープを生成しています。作業を行う例で

https://github.com/angular-ui/bootstrap/blob/master/src/tabs/tabs.js#L78

、あなたの内側と外側のフォームのプロパティは、同じ範囲内です。これを証明するために、外側のタブセットとタブタグディレクティブshow hereを取り除きました。タブセットディレクティブでマークアップを囲むと、innerFormが含まれている新しい独立スコープが生成されます。

これを修正するには、$ emit()(http://docs.angularjs.org/api/ng。$ rootScope.Scope)を続けてフォームの変更を確認し、値と有効性の内部スコープの変更の外側スコープと通信できます。あなたがChromeを使用している場合

は、あなたの範囲を表示しますBatarang extensionはまた

+0

を階層取得あなたは、最新の角度ブートストラップにアップグレードしてください。 https://github.com/angular-ui/bootstrap/issues/574タブの中にあったフォーム要素に奇妙な振る舞いがあったといういくつかの問題を引き起こしていたタブ編集が修正されました。 –

+0

別のオプションは、ここに示すような "フォーム"オブジェクト自体のコンテナをシフトすることです。http://stackoverflow.com/questions/19568761/can-i-access-a-form-in-the-controller基本的なコントローラからフォームにアクセスする簡単な方法を探しているのであれば、タブセットにもかかわらず、これは最もシンプルなオプションです。 –

関連する問題