在JQuery函数内调用Angular JS函数不起作用

时间:2015-03-13 13:54:41

标签: jquery angularjs

我在JQuery函数中调用了一个Angular JS函数,但它没有用,任何人都可以指出错误

Javascript功能: -

我有一个文本字段,您可以在其中添加员工电子邮件地址。根据添加的电子邮件ID,angular js函数从Google Directory中提取其全名。在下面的函数中,我试图将所有添加的员工名称连接到一个String。但是我无法在Jquery函数中调用角度JS函数。

     (function( $ ){

       $.fn.multipleInput = function() {

         return this.each(function() {

        angular.element('#theController').scope.getFullName($input.val());
        alert(fullname);


            }

           });

Angular JS功能: -

我创建了以下函数来从google目录中提取fullname。角度JS函数使用服务并返回员工的全名。

     var bipin=angular.module("ui.bootstrap.demo",['ui.bootstrap']);

     bipin.controller('theController',['$scope','$q','$http','$window',     function($scope,$q,$http,$window){
     $scope.selected = '';
       $scope.email = '';
       $scope.fullName = '';

      $scope.getFullName= function(item) {
              alert();
               return $http.get('https://myservice/v1/query/'+$label)
            .then(function(response){
              return response.data.items.map(function(item){

                    $scope.fullName=item.fullName; 

               return    item.fullName;

               });
            });



          };

$ scope.addOne =函数(NUM){                    var q = $ q.defer()//创建一个延迟对象,该对象将重复将来完成的任务                    $ scope.step ++;

               if(angular.isNumber(num)){
                  setTimeout(function(){q.resolve(num+1)},1000)
                    }else{
                    q.reject('NaN')
                       }
                return q.promise
                }

             $scope.step=0;
             $scope.myValue=0;
             $scope.promise=$scope.addOne($scope.myValue);
             $scope.promise
             .then(function(v){return $scope.addOne(v)})
             .then(function(v){return $scope.addOne(v)})
             .then(function(v){return $scope.addOne(v)})
             .then(function(v){return $scope.addOne(v)})
             .then(
               function(v){$scope.myValue=v},
               function(err){$scope.myValue=err}
                )
        }])  

1 个答案:

答案 0 :(得分:1)

.scope是一个功能。您需要更改此行:

angular.element('#theController').scope.getFullName($input.val());

到此:

angular.element('#theController').scope().getFullName($input.val());

编辑添加:要返回异步操作,请执行此操作...

$('[ng-controller="theController"]').scope().getFullName($input.val())
    .then(function(fullName) {
        alert(fullname);
     }

$scope.getFullName= function(item) {
    var deferred = $q.defer();

    $http.get('https://myservice/v1/query/'+$label)
        .then(function(response) {
            response.data.items.map(function(item) {
                deferred.resolve(item.fullName); 
            }
        })   

    return deferred.promise;
});