Как я могу вызывать функцию, определенную под контроллером, из любого места веб-страницы (вне компонента контроллера)?AngularJS. Как вызвать функцию контроллера извне компонента контроллера
Он отлично работает, когда я нажимаю кнопку «получить». Но мне нужно вызвать его из-за пределов контроллера div. Логика такова: по умолчанию мой div скрыт. Где-то в меню навигации я нажимаю кнопку, и она должна показывать() мой div и выполнять функцию «получить». Как я могу это достичь?
Моя веб-страница:
<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>
Мои ЯШ:
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 из другой контроллер? – callmekatootie
На данный момент меню навигации не является контроллером. Просто html. Не уверен, что его можно вызвать функцию контроллера из html/javascript, вот почему я разместил этот вопрос. Но да, логично сделать меню навигации отдельным контроллером. Как я могу вызвать функцию MyController.get() из NavigationMenu.Controller? –