Wie kann ich die unter Controller definierte Funktion von jedem Ort der Webseite (außerhalb der Controller-Komponente) aufrufen?
Es funktioniert perfekt, wenn ich die Taste "get" drücke. Aber ich muss es von außerhalb des Div-Controllers aufrufen. Die Logik ist: Standardmäßig ist mein Div versteckt. Irgendwo im Navigationsmenü drücke ich eine Taste und sie sollte () mein 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){ }
});
};
}
get()
MyController von einem anderen Controller aus aufrufen möchten?