Javascript 函数不在角度范围内工作
下面定义的函数将从循环中打开一个对话框Javascript 函数不在角度范围内工作,javascript,angularjs,Javascript,Angularjs,下面定义的函数将从循环中打开一个对话框 $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 () {
$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 );
}
}
$http.post(url,req,”)
.然后(功能(响应){
对于(var r=0;r
调试时,我可以点击该函数,但对话框没有打开。出了什么问题。在我看来像是定义了
$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);
}
});
//在主控制器中:
$scope.dialogOpen=函数(i,j)
{
$scope.num=i;
$scope.count=j;
};
//在包含$http.Post()的控制器中:
函数foo(i,j)
{
$rootScope.dialogOpen(i,j);
}
$http.post(url,req,“”)。然后(函数(响应){
对于(var r=0;r
很难说,您正在定义一个dialogOpen方法,您应该调用它吗?您是在谈论模态吗?OP问题不够清楚!我找到了解决方案thanks@Graham这就是我想要的,非常感谢你的解释和解决方案