我在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}
)
}])
答案 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;
});