Добрый день, недавно открыла для себя фрэймворк AngularJS решила сделать простенькую операцию и натолкнулась на проблему:
есть кнопка:
<a href="" id="vdsvdsvdsvd" class="button_submit btn_gray_red" send-user-information-to-server method-from-controller="send_authentication_data_User">Войти</a>
есть директива:
questApp.directive('sendUserInformationToServer', function() {
return{
scope: {
methodFromController: '=',
},
link: function(scope, elm, attrs, ctrl) {
var ElementButton = angular.element(elm);
ElementButton.bind('click', call_the_controller_to_request);
function call_the_controller_to_request(){
console.log(scope.methodFromController(elm));
}
}
}
});
создала контроллер:
questApp.controller('AuthController',
function AuthController($scope, $http){
$scope.contentQuestions = "Сюда будет подгружаться результат запроса";
$scope.send_authentication_data_User = function(elem){
var message = "строка";
$http({method: 'GET', url: 'static/testFilesJson/question_Auth.json', data:"message=" + message,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}}).
success(function(data, status, headers, config) {
alert(12);
$scope.contentQuestions = data;
/*console.log($scope.contentQuestions.author);*/
console.log(data.ResultsForEachField[0].PassData);
}).
error(function(data, status, headers, config) {
alert(22);
console.log(status);
});
}
});
суть проблемы: НЕ отрабатывает сервис $http() при таком вызове.
Он рабоатет если я напрямую вызову метод контроллера из самого элемента через ng-click, он работает и из директивы если я вызову метод контроллера вот так:
angular.$apply(ElementButton.bind('click', call_the_controller_to_request()));
только тогда он отрабатывает при загрузке а не при клике, но категорически не хочет работать в том контексте который я показала. Помогите пожалуйста, мучаюсь второй день уже