【问题标题】:AngularJS return two http get requests but only first one is resolvedAngularJS 返回两个 http get 请求,但只有第一个被解决
【发布时间】:2016-04-06 18:20:07
【问题描述】:

我是 angularjs 的新手。我正在尝试使用 angularjs 创建一个移动应用程序。这里只有if 条件有效,else 不工作,这意味着第一个 http 工作正常,而第二个不工作。如何解决?

app.js

$http({method: 'JSONP', url: 'http://js/english.js?callback=JSON_CALLBACK'}).
    then(function(response) {
        console.log(response);
        $scope.status = response.status;
        $scope.templeEn = response.data;
    });

$http({method: 'JSONP', url: 'http://js/malayalam.js?callback=JSON_CALLBACK'}).
    then(function(response) {
        console.log(response);
        $scope.status = response.status;
        $scope.templeMl = response.data;
    });  


$scope.loadlanguages=function(files) {
    console.log(files);
    if(files=='english') {
        console.log('hai');
        $scope.result=$scope.templeEn;
        console.log( $scope.result);    
    }
    else {
        console.log('ml');
        $scope.result=$scope.templeMl;
        console.log( $scope.result)
    }
}

index.html

<button class="button button-icon" ng-click="loadlanguages('english')" >
    en
</button>

<button class="button button-icon" ng-click="loadlanguages('malayalam')" >
    ml
</button>

【问题讨论】:

  • 看起来一切正常。我制作了一个与此类似的fiddle,供您交叉检查您的代码。
  • 您的代码与您的 url 完美配合。但是当我在您的代码上传递我的 url 时,它不起作用。仍然显示相同的错误,只有第一个正在工作但 @mJunaidSalaat
  • @mJunaidSalaat 我没有对您的代码进行任何更改,只是更改了 url。但不起作用。如果我在第一个 http 上通过english.js,它正在工作,而 malayalam.js 不工作。如果我在第一个 http 上通过 malayalam.js,它的工作和english.js 不工作
  • 是的,它不起作用,因为您尝试的 url 不会返回任何内容。你应该仔细检查你的url是否正确。
  • @mJunaidSalaat 那不是我的网址。我只是在这里举例。我的确切网址是obidostech.com/english.js 和obidostech.com/malayalam.js

标签: angularjs json


【解决方案1】:

我已经更新了您的代码的Fiddle 和您的url。现在应该可以了。

请注意,不允许 fiddle 访问您的站点,并且会抛出 cross-domain 错误。我使用了chrome extension 来禁用它并将您的数据放在小提琴中。以下是更新后的代码和您的响应图片。

$http.get("http://www.obidostech.com/english.js")
      .then(function(json) {
        $scope.responseFoo = json.data;
      },function(err){
        console.log(err)
      });

    $http.get("http://www.obidostech.com/malayalam.js")
      .success(function(json) {
        $scope.responseBar = json;
      },function(err){
        console.log(err)
      });

    $scope.response = [];

    $scope.loadlanguages = function(lang){
        if(lang === 'foo'){
            $scope.response = $scope.responseFoo
      }
      else{
        $scope.response = $scope.responseBar;
      }
    };

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2016-01-03
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 2010-11-05
    • 1970-01-01
    相关资源
    最近更新 更多