2016-10-11 60 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