Rufe einen Controller von einem anderen auf

Ich bin ein absoluter Neuling in AngularJs, bitte haben Sie etwas Geduld mit mir.

Ich habe die folgende eckige App, die zwei Controller enthält

(function () {
    angular.module("app-machines", ['ngFlatDatepicker'])
    .controller('mainController', ['$scope', mainController])
    .controller("machinesController", machinesController);;

    function mainController($scope) {
        $scope.datepickerConfig_From = {
            allowFuture: true,
            dateFormat: 'DD.MM.YYYY',
            minDate: moment.utc('2015-09-13'),
            maxDate: moment.utc('2015-09-17')
        };

        $scope.datepickerConfig_To = {
            allowFuture: true,
            dateFormat: 'DD.MM.YYYY',
            minDate: moment.utc('2015-09-13'),
            maxDate: moment.utc('2015-09-17')
        };

        $scope.date_from = "14.09.2015";
        $scope.date_to = "15.09.2015";

        $scope.change = function () {
            //somehow execute machinesController get function
        };

    }

    function machinesController($http) {
        var vm = this;
        vm.errorMessage = "";
        vm.machines = [];

        $http.get("/api/machine/2015-09-14_2015-09-16")
        .then(function (response) {
            //success
            angular.copy(response.data, vm.machines);
        }, function (error) {
            //failure
            vm.errorMessage = "Failed to load data:" + error;
        });

    }
})();

mymachinesController soll ein @ aufrufGET Funktion mit Parametern. Hier sind die Parameter 2015-09-14 und die zweite ist 2015-09-16 (für den Moment sind sie fest codiert).

Was ich erreichen möchte ist, dass ich auf meiner Hauptseite zwei Eingabesteuerelemente habe, die @ auslös$scope.change -Funktion (befindet sich am unteren Rand des erstenmainController). Hier möchte ich Werte von @ übergebdate_from unddate_to auf die GET-Funktion, damit ich bestimmte Werte abrufen kann.

Was ich tun kann (am Ende, wenn nichts funktioniert), ist die Ode von @ zu kopiermachinesController in meinmainController und das würde das Problem lösen.

Jedoch möchte ich lernen, wie man ein bisschen besser damit umgeht, deshalb möchte ich lernen, wie man es richtig macht (in diesem Fall ruft man ein Modul vom anderen auf).

Was muss ich ändern, um dies zu erreichen?

BEARBEITE:

Der Grund, warum ich machinesController habe, ist, wie bereits erwähnt, die json-Daten herunterzuladen und dem Benutzer anzuzeigen. Also am Ende in meinem HTML-Code habe ich Folgendes:

    ,<div ng-controller="machinesController as vm" class="col-md-6 col-md-offset-3">
        <div class="text-danger" ng-show="vm.errorMessage"> {{ vm.errorMessage }}</div>
        <table class="table table-responsive table-striped">
            <tr ng-repeat="machine in vm.machines">
                <td> {{ machine.name }}</td>
            </tr>
        </table>
    </div>

Welche eine Tabelle mit Computernamen anzeigt.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage