angular-ui
タブdirective
を使用して、各タブのクリックで異なるコントローラから異なる機能を呼び出そうとしています。角度uiタブの各タブをクリックすると、異なるコントローラから異なる機能を呼び出す方法はありますか?
HTML
<tabset>
<tab heading="Reports" ng-controller="ReportsController" ng-click="fetchReports()" id="tab1">
<div> Reports </div>
</tab>
<tab heading="Sales" ng-controller="SalesController" ng-click="fetchSales()" id="tab2">
<div> Sales </div>
</tab>
</tabset>
私は新しい/孤立範囲を求め、この
複数のディレクティブ[ngController、タブ]のようなエラーを取得しています
要件
I have 5-6 tabs in a page. The page should not load the data of each tab at once. It should only load data for a tab once that tab is being clicked.
ソリューション
私は私がその後、ParentController
からbroadcast
のイベントは、それぞれのChild
コントローラからの関数を呼び出すことができますようparent controller
でtabset
ディレクティブをラップするためのソリューションを持っています。
<div ng-controller='ParentController'>
<tabset>
<tab heading="Reports" id="tab1">
<div ng-controller="ChildOneController"> Reports </div>
</tab>
<tab heading="Sales" id="tab2">
<div ng-controller="ChildTwoController"> Sales </div>
</tab>
</tabset>
</div>
問題:
しかし、悲しいことに、私は自分のアプリケーション内のタブと、あまりにも多くのページを持っていると私はParentController
からChildController
に各タブのイベントを放送することは良いアイデアだと思ういけません。 私はそれに適した解決策を知る必要がありますか?
私はあなたのソリューションが、何についての場合、私は5-6のタブを持っているが好きな..?このスタイルに従って、私はタブセットの周りに各コントローラをラップする必要があります。私はこれが良い考えだとは思わない。あなたは何を言っていますか ? –
はい、複数のコントローラーを必要に応じて定義する方法の例です。 現実的には(このシナリオでは)、必要なすべての機能を備えた単一のコントローラを定義するか、機能をさらにサービス/工場に分けるか、Alvaroのソリューションでディレクティブがどのようになるかを示しますそれ自身のコントローラーで作成されます。そのタブのすべてのロジックが1つのモジュールに含まれます。 –