2015-03-29 4 views
6
ruft

Wie angularjs Funktion oder Controller von jquery Ich bin neu zu diesem angularjs hier ist meine Funktion hier muss ich die var1 übergeben und var2 von jquery ich habe viele gesucht Artikel, aber ich kann es nicht verstehen. Bitte helfen Sie mirWie man angular js Funktionscontroller von jquery auf Seite

<script type="text/javascript"> 

    function customersController($scope, $http) { 
     $http.get("https://tic.com/testingservice/HttpService.svc/operator/var1/var2") 
     .success(function (response) { $scope.names = response; }); 
    } 

+2

-_- Warum Sie jquery müssen ?? Du hast angularjs. Versuchen Sie zu lernen, es richtig zu verwenden –

+0

Wenn Sie var1, var2 dynamisch von Server-Seite Skript zur Seite Renderzeit definiert werden müssen, können Sie module.value ('var1', foo) und injizieren var1 in Ihrem Controller –

+0

Bitte helfen Sie mir, wie um angularjs von jquery anzurufen, möchte ich beide in meiner webapplication haben – Tajkumar

Antwort

18

Wenn ich allgemein sprechen, kann es Fälle geben, wenn jQuery Verwendung in müssen, ist AngularJS app heißt jQuery-Plugin verwendet wird, die nicht in abgewinkelte Ausführung ist.

Jeder Controller verfügt über $ scope/diese und Sie können den Umfang eines Winkelelement zugreifen, wenn Sie einen ID-Tag auf dem gleichen DOM-Element als ng-Controller angeschlossen haben:

das DOM:

<div id="myctrl" ng-controller="MyCtrl"></div> 

Ihr Controller:

function MyCtrl($scope) { 
    $scope.anyFunc = function(var1, var2) { 
     // var1, var2 passed from jquery call will be available here 
     //do some stuff here 
    } 
} 

in jQuery tun Sie dies, und es wird, dass die Steuerung zugreifen und diese Funktion aufrufen:

angular.element('#myctrl').scope().anyFunc('value1','value2'); 

Lauf Probe

angular.module('app', []) 
 
    .controller('MyCtrl', function ($scope) { 
 
    $scope.anyFunc = function (var1, var2) { 
 
     alert("I am var1 = " + var1); 
 
     alert("I am var2 = " + var2); 
 
    }; 
 
}); 
 

 
$(function(){ 
 

 
    $("#hit").on("click",function(){ 
 
     
 
      angular.element($("#myctrl")).scope().anyFunc('VAR1 VALUE', 'VAR2 VALUE'); 
 
    
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div id="myctrl" ng-app='app' ng-controller="MyCtrl"> 
 
Call via jQuery 
 
<button id="hit">Call</button> 
 
</div>

Glücklich zu helfen!

+0

Ich benutze es in asp.net ich kann es nicht bekommen, bitte helft mir ich kann nicht angularjs zugreifen. Ist etwas falsch mit dem Zugriff auf das Element – Tajkumar

+0

oops asp.net ist nicht in der ersten Frage obwohl :) Ich habe keine Kenntnis von asp.net, ich hätte gefunden, asp.net + eckig + jquery Tutorial, wenn ich bei Ihr Platz –

3

gefällt das

angular.module('app', []) 
 
    .controller('jqueryCtrl', function ($scope) { 
 
     $scope.callFromJquery = function (data) { 
 
      alert(data); 
 
     }; 
 
    }); 
 
$(function() { 
 
    $("#press").on("click", function() { 
 
     angular.element($("#jquery")).scope().callFromJquery('I Called You ! Angular !'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div id="jquery" ng-app='app' ng-controller="jqueryCtrl"> 
 
Just Press ME 
 
<button id="press">Press ME</button> 
 
</div>

+0

Ich benutze es in asp.net ich kann es nicht bekommen, bitte helfen Sie mir, ich kann nicht angularjs zugreifen. Stimmt irgendetwas mit dem Zugriff auf das Element nicht? – Tajkumar

+0

Haben Sie jQuery und angularj richtig beschrieben? –

+0

Ja, ich habe angularjs und jquery korrekt referenziert. Beide funktionieren ordnungsgemäß. Aber nachdem ich den obigen Code benutzt habe, funktioniert es nicht. – Tajkumar

4

Sowohl die oben genannten Antworten Versuchen Sie mich schließlich sehr geholfen habe ich die Antworten

$(function(){ 

    $("#hit").on("click",function(){ 

     angular.element($("#myctrl")).scope().anyFunc('VAR1 VALUE', 'VAR2 VALUE'); 

    }); 

}); 

function customersController($scope, $http) { 
    $scope.anyFunc = function (var1, var2) { 
    alert("I am var1 = " + var1); 
    alert("I am var2 = " + var2); 
$http.get("https://tic.com/testingservice/HttpService.svc/operator/var1/var2") 
    .success(function (response) { $scope.names = response; }); 
}; 
    } 



<div id="myctrl" ng-app='' ng-controller="MyCtrl"> 
Call via jQuery 
<button id="hit">Call</button> 
    </div> 
Verwandte Themen