Javascript angularjs 1.2.0$http未在$eval中发送请求
angularjs 1.2.0$http未在$eval中发送请求 代码Javascript angularjs 1.2.0$http未在$eval中发送请求,javascript,angularjs,Javascript,Angularjs,angularjs 1.2.0$http未在$eval中发送请求 代码 我切换到非minifed AngularJS,并插入了一些断点,以查看它命中了$http的哪些部分,以及出于某种原因没有调用sendReq方法。虽然没有完全缩小范围,但添加$timeout似乎可以解决这个问题: $timeout应该接受函数,而不是函数调用。您可能只是在沉默错误,因为$timeout无法执行$http.get()的返回值http://jsbin.com/“)@finishingmove好吧,我在OPs帖子上
我切换到非minifed AngularJS,并插入了一些断点,以查看它命中了$http的哪些部分,以及出于某种原因没有调用sendReq方法。虽然没有完全缩小范围,但添加$timeout似乎可以解决这个问题:
$timeout应该接受函数,而不是函数调用。您可能只是在沉默错误,因为$timeout无法执行
$http.get()的返回值http://jsbin.com/“)
@finishingmove好吧,我在OPs帖子上看到的问题是,请求没有发生,调试了我看到的角度源代码,出于某种原因,它没有在$http上调用sendReq。。。添加$timeout“修复”了它,但我想它应该是一个函数,而不是将返回的承诺,但我没有注册100%我将尝试修复。我也不确定,只是以防万一:)请在您的问题中包含代码,它应该是自包含的!
var myApp = angular.module('myApp', ['ng']);
myApp.controller('test', function($scope, $http, $timeout) {
$scope.get = function(search) {
console.log(search);
$timeout(function(){$http.get('http://jsbin.com/')},1);
};
}).directive('xxx', function() {
return {
restrict: 'A',
link: function(scope, elem, attr) {
var searchScope = scope.$new();
searchScope.$search = 'search text ...';
elem.bind('click', function(e) {
searchScope.$eval(attr.c);
});
}
};
});