Hola, estoy iniciándome con angular y tengo una duda que me está consumiendo todo el tiempo y no consigo solucionarla.
Estoy utilizando la versión angular JS 1.5. Quiero llamar a un método de un controlador desde fuera de angular, desde jquery. He consultado multitud de foros y todos me dan la misma respuesta, la misma solución que no me sirve.
Un ejemplo tonto que no me funciona:
HTML:
<div id="span" ng-app='inspinia' ng-controller="ClientController">
Hi
</div>
<script>
$(function(){
angular.element(document.getElementById('span')).scope().myfunction("dos");
}
La idea es invocar al método myfunction del controlador clientController:
function ClientController($scope, $state, $http)
{
$scope.myfunction = function (data) {
alert("---" + data);
};
}
angular
.module('inspinia')
.controller('ClientController', ClientController);
Pues bien, este código tan simple no me funciona. El mensaje que me aparece continuamente es:
angular.js:13236TypeError: angular.element(...).scope(...).myfunction is not a function
at HTMLDocument.eval (eval at globalEval
¿Alguien me puede ayudar?.