2015-09-18 17 views
8

Tôi muốn biết rằng làm thế nào tôi có thể gọi một hàm jQuery trong chức năng góc của tôi, như tôi đã một hàm jquery như:Làm thế nào để gọi jQuery chức năng trong angularjs chức năng

function testData(){ 
    // code 
} 

và tôi đã là một góc chức năng như:

myApp.controller(AppCtrl,['$scope', function($scope) { 
    $scope.imagesData = function(){ 
     //here I need to call the function: testData() 
    } 
}]); 

vì vậy, hãy cho tôi biết làm cách nào tôi có thể gọi hàm testData() bên trong hàm angularjs ($ scope.imagesData()). Cảm ơn trước.

+0

Bạn nên kiểm tra [Suy nghĩ trong AngularJS”nếu tôi có một nền tảng jQuery?] (Http://stackoverflow.com/questions/14994391/thinking-in-angularjs -if-i-have-a-jquery-background) – DelightedD0D

+0

Miễn là chức năng của bạn nằm trong cùng một phạm vi (hiển thị từ cả jQuery và AngularJS), bạn nên là tốt. [jsFiddle] (https://jsfiddle.net/sqc84y4p/) –

Trả lời

9

Chức năng do người dùng xác định không phụ thuộc vào jQuery. Nếu bạn muốn gọi hàm jQuery được xây dựng, bạn nên bao gồm jQuery trước angularjs. Ở đây bạn bạn nên sử dụng jQuery tiền tố để tránh xung đột với angularjs chức năng

myApp.controller(AppCtrl,['$scope', function($scope) { 
    $scope.imagesData = function() { 
     testData();//calling jquery function visible in given scop 
     jQuery('#id').next();//getting element sibling 
    } 
}]); 
+1

Xin chào tất cả, Cảm ơn bạn vì nó, Nó hoạt động. – Dhana

1

Bạn có thể làm những điều sau:

1) Tạo một file js đưa chức năng đó trong file js, ví dụ như: myFunction .js, bao gồm dữ liệu thử nghiệm phương pháp.

2) Cung cấp tham chiếu/bao gồm nó trước angularjs trong html

3) Bạn có thể gọi trực tiếp chức năng trong bộ điều khiển.

Tuy nhiên, với mục đích sử dụng jquery, bạn có thể gọi bất kỳ phương thức nào bằng cách sử dụng Jquery() chỉ cần thêm gói Jquery trước angularjs.

+0

Xin chào, Cảm ơn, nó đã đưa ra giải pháp của tôi. – Dhana

0

Tôi đã thử điều này.Tôi hy vọng nó có thể hữu ích. Js:

function testData(){ 

    return ("entering"); 
} 

var myapp = angular.module("myapp",[]); 
myapp.controller("ctrl",['$scope', function($scope) { 

    $scope.imagesData = testData; 

    console.log($scope.imagesData()); 
}]); 

Working Jsbin

Các vấn đề liên quan