我正在做一个简单的分页,我的范围变量在简单的除法运算后消失了。这一定是非常愚蠢的事情。
.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
为NULL!这怎么可能?如果它们都是有效的非零整数,为什么我不能除$scope.rows / $scope.batch
?
简单的视图测试
<span>{{rows}} - {{batch}} - {{curpage}} - {{pagenum}}</span>
给了我339 - 15 - 1 - null
如果我不在$scope.rows
中保存整数并将除法运算保留在服务回调中,则由于某种原因它会起作用。像这样。
getTablesS1.count(tid, function (d){
$scope.pagenum = d.count / $scope.batch;
});
但这完全不是我想要的。我想拉一次行数并将其保存在范围变量或任何变量中,这样我就可以在每次批量更改时重新计算页数。每次我想重新计算页码时,我都不想进行$ http呼叫。
谢谢。
答案 0 :(得分:0)
&#34;现在,$scope.rows
是一个整数(每个表的行数)我通过ajax 通过服务获得。&#34;
这是你的问题。首次初始化控制器时$scope.rows
未定义,因为ajax响应尚未返回。
在该行上放置一个断点,您将会看到。
您在视图中看到的339
可能是因为ajax响应已经回来了。