Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs:将两个非零范围变量相除会导致NULL_Javascript_Angularjs - Fatal编程技术网

Javascript Angularjs:将两个非零范围变量相除会导致NULL

Javascript Angularjs:将两个非零范围变量相除会导致NULL,javascript,angularjs,Javascript,Angularjs,我正在做一个简单的分页,我的scope变量在一个简单的除法操作后消失。这一定是件可笑的事 .controller('ShowTableCtrl', function($scope, ...) { $scope.batch = 15; $scope.curpage = 1; getTablesS1.count(tid, function (d){ $scope.rows = d.count; }); $scope.pagenum = ($scope.rows /

我正在做一个简单的分页,我的scope变量在一个简单的除法操作后消失。这一定是件可笑的事

.controller('ShowTableCtrl', function($scope, ...) {

  $scope.batch = 15;
  $scope.curpage = 1;

  getTablesS1.count(tid, function (d){
    $scope.rows = d.count;
  });

  $scope.pagenum = ($scope.rows / $scope.batch);

  ...
}
因此,
$scope.batch
是每页要显示的行数,但实际上可以是任何数字


现在,
$scope.rows
是一个整数(每个表的行数),我通过一个服务通过ajax获得

因此,如果我在视图中测试它,则
$scope.rows
$scope.batch
都可用,但
$scope.pagenum
为空!这怎么可能?如果
$scope.rows/$scope.batch
都是有效的非零整数,为什么我不能对它们进行除法

简单视图测试
{{rows}}-{batch}-{{curpage}-{{pagenum}}

给我
339-15-1-null

如果我不将整数保存在
$scope.rows
中,并将除法操作粘贴在服务回调中,那么它会因为某种原因而工作。像这样

getTablesS1.count(tid, function (d){
  $scope.pagenum = d.count / $scope.batch;
});
但这完全不是我想要的。我想一次提取行数,并将其保存在一个范围变量或任何变量中,以便在每次批处理更改时重新计算页数。我不想每次重新计算页码时都调用$http

谢谢。

“现在,
$scope.rows
是一个整数(每个表的行数)我通过ajax通过服务获得。”

这是你的问题。控制器首次初始化时,
$scope.rows
未定义,因为ajax响应尚未返回

在该行上放置一个断点,您将看到


您在视图中看到的是
339
,这可能是因为ajax响应回来了。

谢谢。我可能遗漏了什么。那么,如果两个变量都是单独可用的,那么商为什么不可用呢?我该如何解决这个问题?如果我看一下正确的方法,我可能会更快。@r.sendecky请在执行
$scope.pagenum=…
之前添加
console.log($scope.rows)
,注意它是
未定义的。如果是,您必须等待ajax返回,然后才能计算
$scope.pagenum
。您是对的。那我怎么等呢?我需要提取计数并保存它,然后计算页码,然后显示结果。我现在明白了。但是我不明白为什么它会等待
$scope.rows
自己正确地显示它,但是当涉及到
$scope.pagenum
时,它不会等待并显示NULL?很抱歉,这让我非常困惑。@r.sendecky有可能在angular digest进程在HTML页面上呈现其代码时,ajax请求返回,现在
$scope.rows
具有有效值。@r.sendecky,当服务完成请求时,应使用相关值分配
$scope.rows