2014-09-24 3 views
0

비디오가 끝난 후 함수를 실행하려고합니다. 함수는 각도 컨트롤러 안에 있습니다. 함수가 호출,하지만 난라는 오류가 발생한다 :컨트롤러 내부에 함수가 정의되어 있지 않습니다.

여기
ReferenceError: postVendor is not defined 

가 호출하는 자바 스크립트입니다 :

 $.noConflict(); 
     jQuery(document).ready(function ($) { 
      var api = flowplayer(); 
      api.bind("finish", function (e, api) { 
       var data = "true"; 
       var url = "someurlhere"; 
       postVendor(url, data); 
      }); 
     }); 

여기 내 모듈/컨트롤러 (같은 파일)입니다 :

var registrationModule = angular.module('registrationModule', []); 

registrationModule.controller("vendorCtrl", function ($scope, $http) { 
    $scope.postVendor = function (url, data) { 
     $http.post(url, data).success(function (data) { console.log(data) }).error(function (data) { console.log(data) }); 
    }; 

}); 

내 html :

<html xmlns="http://www.w3.org/1999/xhtml" ng-app="registrationModule"> 

<body ng-controller="vendorCtrl"> 

각도 1.2.25를 사용하고 있습니다.

함수를 얻는 방법에 대한 아이디어는 제대로 호출 되었습니까?

답변

1

1. 반드시 jQuery를이 angular.js 전에로드되어 있는지 확인

을 2.Make 확인하십시오 vendorCtrl 반환 $ scope.postVendor는 (당신은 추가 할 수있는) 것을 :

return { 
    postVendor : $scope.postVendor 

    }; 

하세요 예를 볼 수는

$.noConflict(); 
    jQuery(document).ready(function ($) { 
     var api = flowplayer(); 
     api.bind("finish", function (e, api) { 
      var data = "true"; 
      var url = "someurlhere"; 
      angular.element('body').controller().postVendor(url, data); 
     }); 
    }); 
을하는 데 도움이
$(document).ready(function() { 
 
    
 
     
 
    angular.element('#angularController').controller().doSomthing("Hello ", "from jquery") 
 
    
 
    }); 
 

 

 
var app = angular.module('app', []); 
 

 
app.controller('firstCtrl', function($scope){ 
 

 
    $scope.doSomthing = function(a,b){ 
 
    alert(a+b); 
 
    }; 
 
    
 
    
 
    
 
return { 
 
    doSomthing: $scope.doSomthing 
 
    
 
    }; 
 
});
<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> 
 

 

 
<body ng-app="app" > 
 
    <div id="angularController" ng-controller="firstCtrl"> 
 

 
     </div> 
 
</body>
`오류가 : [jqLite : nosel] 대한 추가 정보를 원하시면

난 그냥이의 변화를 시도하지만, 얻을 수 있었다 여기 Call Angular JS from legacy code

+0

감사를 참조하십시오! 선택기를 통해 찾고 요소 jqLite에서 지원하지 않는' – user4075691

+0

@ user4075691 업데이 트를 참조하십시오 – sylwester

관련 문제