2013-12-17 94 views
1

我的問題是,我的JS中的每個函數被調用兩次。我一直在閱讀許多具有相同問題的主題,但我無法找到合適的答案。AngularJS - 函數調用兩次

這裏是我的代碼:

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(函數($ provider))或其他任何東西。

這裏他們是一些交通的快照。

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

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

有一件事我要實現的是讓第一次加載頁面的$ http請求,使頁面將從服務器獲取的信息自動填充。 此外,當我點擊一個按鈕,調用我的服務器,並從服務器中刪除項目。 但我承擔不起每一個電話都是兩次。

預先感謝您

+0

其中是腳本添加。請檢查您是否導入了兩次相同的腳本。示例angular.min.js和angular.js –

+0

我在該文件的末尾添加JS。我檢查了你告訴我的內容......但我沒有兩次輸入相同的腳本。 – Havor

回答

1

您已包含的兩個截圖顯示,每個調用時的兩倍。正如你所看到的,第一次調用是使用HTTP動詞OPTIONS。在調用GET之前,這是調用以查看GET謂詞在服務器上是否可用。選項是一個非常快速的通話。

當您以角度進行CORS請求時會發生這種情況。

This SO question可能有助於回答爲什麼角度做這個和什麼時候。

希望這會有所幫助。

+0

非常感謝。我很擔心這個問題......你幫了我。 – Havor