2016-10-11 93 views
-1

的工作不定義函數下面在調試我能夠打功能,但對話是不開放會從一個循環功能的角度

$http.post(url,req, "") 
    .then(function (response) { 
    for (var r = 0; r < response.data.items.length ; r++){ 
     foo(response.data.items[r], r); 
    } 

function foo(i, j) { 
    $rootScope.dialogOpen = function() { 
      alert('i = ' + i + ', j = ' + j); 
     } 
} 

打開一個對話框。什麼地方出了錯 。

+0

不可能告訴,要定義dialogOpen方法,你應該被調用呢? – epascarello

+0

你是在談論模態? – Shashank

+0

OP問題還不夠清楚! – Nirus

回答

0

在我看來像$rootScope.dialogOpen()得到定義,但從來沒有調用。你的函數foo的主體聲明瞭$rootScope.dialogOpen(),但這從來沒有被調用過。

我不確定你的應用是如何構建的,但幾乎可以肯定你不應該在foo內定義$rootScope.dialogOpen()。該dialogOpen功能應該在你的主控制器別的地方,例如申報並經foo叫,即:

// In your master controller: 
$scope.dialogOpen = function(i,j) 
{ 
    $scope.num= i; 
    $scope.count = j; 
}; 

// In the controller that contains your $http.Post(): 
function foo(i,j) 
{ 
    $rootScope.dialogOpen(i,j); 
} 
$http.post(url,req, "").then(function (response) { 
    for (var r = 0; r < response.data.items.length; r++){ 
     foo(response.data.items[r], r); 
    } 
}); 
+0

@格拉漢姆這就是我一直在尋找和感謝你的解釋和解決方案很多 – User146378