AngularJS - 函数调用两次

时间:2013-12-17 11:11:54

标签: angularjs

我的问题是我的JS中的每个函数都被调用两次。我一直在阅读许多有相同问题的主题,但我无法找到合适的答案。

这是我的代码:

HTML

<!doctype html>
<html ng-app>
    <head>
        <title>News</title>

    </head>

    <body ng-controller="newsCtrl">
      <div>
        <ul>
         <li ng-repeat="item in news">
            <h2>
               {{item.shortFeed}}
                <li class="dropdown pull-right"> 
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown">Click!</a>
                   <ul class="dropdown-menu pull-right">
                      <li><a ng-click="rejectNewsItem(item)">Rechazar</a></li>
                    </ul>
                 </li>
             </h2>
         </li>
        </ul>
       </div>
    </body>

    <script src="js/angular.js"></script>
    <script type="text/javascript" src="js/jquery-2.0.3.min.js"></script>
    <script type="text/javascript" src="js/bootstrap.js"></script>
    <script src="js/pruebaRest.js"></script>

</html>

JS

function newsCtrl($scope, $http) {
    $http.get('http://localhost:49643/news/todaynews')
        .success(function (data) {
            $scope.news = data;
        })
        .error(function (data) { });

   $scope.rejectNewsItem = function (item) {
        $http.get('http://localhost:49643/news/RejectNewsItem', { params: { newsItemId: item.id } })
        .success(function (data, status, headers) {
            item.approved = false;
            item.rejected = true;
            item.selected = false;
        })
        .error(function (data) {
            alert("error");
        });
    }

}

这是我创建的整个JS。我没有 .config(function($ provider))或其他任何内容。

这里是流量的一些快照。

http://i.stack.imgur.com/7gMEG.png

http://i.stack.imgur.com/W175T.png

我想要实现的一件事是在第一次加载页面时发出$ http请求,以便页面自动填充从服务器获取的信息。 此外,当我单击按钮时,调用我的服务器并从服务器中删除该项目。 但我无法承受每次通话都是两次。

提前谢谢

1 个答案:

答案 0 :(得分:1)

您所包含的两个屏幕截图表示每次调用都进行了两次。如您所见,第一个调用是使用HTTP谓词OPTIONS。这是在调用GET之前调用以查看服务器上是否有GET动词。 OPTIONS是一个非常快速的电话。

当您使用angular进行CORS请求时,可能会发生这种情况。

This SO question可能有助于回答角度为何以及何时发生。

希望这有帮助。