在模板中打印$ scope值

时间:2017-06-24 21:44:02

标签: angularjs

我有这个功能:

$scope.bigCurrentPage = 1;
$scope.maxSize = 5;
$scope.bigTotalItems = 175;
$scope.currentPage = 1;
$scope.numPages=function() {
    $scope.totalPages=$scope.all.length;
};

我想在temp.view.html中打印$ scope.totalPages,我尝试这样做

<ul uib-pagination total-items="bigTotalItems" ng-model="bigCurrentPage"
    max-size="maxSize" class="pagination-sm">
</ul>
<pre>Page: {{bigCurrentPage}} / {{totalPages}}</pre>

但我得到输出: Page: 1/,`{{totalPages}}无法打印出来。为什么?

3 个答案:

答案 0 :(得分:1)

在使用值之前调用该函数一次。

$scope.numPages=function() { $scope.totalPages=$scope.all.length; }; $scope.numPages(); 现在 <pre>Page: {{bigCurrentPage}} / {{totalPages}}</pre>这将有效。

但是,在这种方法中,您需要致电$scope.numPages();  每次更改$scope.all.length的值时,都会更新totalPages的值。

修改功能,在这里您不必担心$scope.all.length值的变化,totalPages会在视图中自动更新。

$scope.numPages=function() { return $scope.all.length; };

直接使用numPages()

<pre>Page: {{bigCurrentPage}} / {{ numPages() }}</pre>

答案 1 :(得分:0)

您可能需要实际执行该功能。到目前为止,你所做的一切都是宣告你的功能,但并没有真正称之为它。因此,$ scope.totalPages在此之前并不存在。

所以它就像这样:

$scope.bigCurrentPage = 1;
    $scope.maxSize = 5;
    $scope.bigTotalItems = 175;
    $scope.currentPage = 1;
$scope.numPages=function(){
        $scope.totalPages=$scope.all.length;
    };
$scope.numPages();

尽管如此,这只会假设您将数组声明为$scope.all

答案 2 :(得分:0)

在视图中使用{{all.length || 0}} ....不确定为什么需要此功能