Javascript 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帖子上

angularjs 1.2.0$http未在$eval中发送请求

代码

我切换到非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);
      });
    }
  };
});