私はAngularJSを初めて使用し、1ページのアプリケーションを作成します。添付のスクリーンショットを参照してください適用ボタンがあり、このボタンをクリックすると、別のコントローラで書かれた機能を呼びたいと思うドロップダウンがあります。シェルページに複数のドロップダウンがあります。私は、理解のためにTimeLineドロップダウンのスクリーンショットを添付しています。基本的に3つのドロップダウンがあり、それらはすべてのタブで同じです。なぜなら、それらをシェルページに配置した理由です。たとえば、データベースからすべてのクライアント名を入力するドロップダウンが1つあり、複数のチェックボックスを選択して[適用]ボタンをクリックすると、これらのドロップダウンの下のビューを新しいデータで更新する必要があります。私のボタンがangularjs内の別のコントローラに置かれているときに、ボタンをクリックしてコントローラの機能を呼び出す方法
//このコントローラの機能は、データベースからデータを取得し、ドロップダウンを埋めるために使用されます。ここ
app.controller("FillDropDownController",function($scope,GetService,$rootScope){
$rootScope.loading = true;
// Calling Serivce Method here to get the data and fill dropdown
$scope.GetDropDownValues = GetService.GetAll("CommonApi", "GetDropDownValues").then(function (d) {
$scope.GetDropDowns = d;
$rootScope.loading = false;
});
// Here goes the function for ng-click = GetSelectedPractices() which gets the selected clients
$scope.GetSelectedPractices = function () {
$scope.selectedPractices = [];
angular.forEach($rootScope.PracticesList, function (d) {
if (d.selected == true) {
$scope.selectedClients.push(d.CLIENTNAME);
}
});
$scope.spanValues = $scope.selectedClients;
// I am stuck here that how to call controller functions for specific view
}
});
データベースからデータをフェッチし、テーブルを移入またはデータに基づいてグラフを描画された2つの異なるコントローラ機能(両方が同じビューを更新している)です。これらのコントローラー関数はすべて、汎用サービスを呼び出してデータを取得します。私の問題は、画像番号が表示された場合は、[適用ボタン]ドロップダウンがシェルページに配置されていることです。 2ページにタブがあり、この「タイムライン」ドロップダウンはすべてのタブで同じです(すべてのタブをクリックすると、ロードされたビューとその関数が呼び出され、表が表示されるか、またはチャートが表示されます)。
app.controller("GetChargesController", function ($scope, GetService, $rootScope) {
$scope.Title = "Charges Details List";
$rootScope.loading = true;
// Calling Serivce Method here to get the data
$scope.GetChargesDetails = GetService.GetAll("CommonApi", "GetChargesDetails").then(function (d) {
$scope.ChargesDetails = d;
$rootScope.loading = false;
});
});
app.controller("GetPaymentsController", function ($scope, GetService, $rootScope) {
$scope.Title = "Payments Details List";
$rootScope.loading = true;
// Calling Serivce Method here to get the data
$scope.GetPaymentsDetails = GetService.GetAll("CommonApi", "GetPaymentsDetails").then(function (d) {
$scope.PaymentsDetails = d;
$rootScope.loading = false;
});
});
使用コントローラ –