AngularJS. Aufrufen der Controller-Funktion von außerhalb der Controller-Komponente

Wie kann ich eine unter dem Controller definierte Funktion von einer beliebigen Stelle der Webseite (außerhalb der Controller-Komponente) aufrufen?

Es funktioniert einwandfrei, wenn ich die "get" Taste drücke. Aber ich muss es von außerhalb von Div Controller aufrufen. Die Logik ist: Standardmäßig ist mein div ausgeblendet. Irgendwo im Navigationsmenü drücke ich eine Taste und sie sollte () meine div anzeigen und die Funktion "get" ausführen. Wie kann ich das erreichen?

Meine Webseite ist:

<div ng-controller="MyController">
  <input type="text" ng-model="data.firstname" required>
  <input type='text' ng-model="data.lastname" required>

  <form ng-submit="update()"><input type="submit" value="update"></form>
  <form ng-submit="get()"><input type="submit" value="get"></form>
</div>

Mein js:

   function MyController($scope) {
      // default data and structure
      $scope.data = {
        "firstname" : "Nicolas",
        "lastname" : "Cage"
      };

      $scope.get = function() {
        $.ajax({
           url: "/php/get_data.php?",
           type: "POST",
           timeout: 10000, // 10 seconds for getting result, otherwise error.
           error:function() { alert("Temporary error. Please try again...");},
           complete: function(){ $.unblockUI();},
           beforeSend: function(){ $.blockUI()},
           success: function(data){
            json_answer = eval('(' + data + ')');
            if (json_answer){
                $scope.$apply(function () {
                  $scope.data = json_answer;
            });
            }
        }
    });
  };

  $scope.update = function() {
    $.ajax({
        url: "/php/update_data.php?",
        type: "POST",
        data: $scope.data,
        timeout: 10000, // 10 seconds for getting result, otherwise error.
        error:function() { alert("Temporary error. Please try again...");},
        complete: function(){ $.unblockUI();},
        beforeSend: function(){ $.blockUI()},
        success: function(data){ }
      });
    };
   }

Antworten auf die Frage(9)

Ihre Antwort auf die Frage