我有一個問題$ scope。$ watch call,當它顯然應該被調用。 我有我的HTML文檔中一個分頁程序(引導程序UI):
<pagination total-items="paginatorTotalItems" items-per-page="paginatorItemsPerPage"
page="paginatorCurrentPage" max-size="paginatorSize" class="pagination-sm"
boundary-links="true">
</pagination>
的某一部分,在我的項目顯示(對他們來說,我需要一個分頁程序):
<div ng-show="reviews" ng-repeat="review in reviewsPerPage">
...
</div>
和控制器:
...
$scope.reviewsArray = [];
$scope.paginatorItemsPerPage = 1;
$scope.paginatorSize = 3;
$scope.reviewsPerPage = [];
$scope.paginatorTotalItems = $scope.reviews.result.total;
//restangular object to Array
for (var i = 0; i < $scope.paginatorTotalItems; i++) {
$scope.reviewsArray.push($scope.reviews.result.reviews[i]);
};
$scope.paginatorCurrentPage = 1;
$scope.$watch('paginatorCurrentPage', function() {
var begin = (($scope.paginatorCurrentPage - 1) * $scope.paginatorItemsPerPage);
var end = begin + $scope.paginatorItemsPerPage;
console.log($scope.paginatorCurrentPage);
console.log(begin + ' ' + end);
$scope.reviewsPerPage = $scope.reviewsArray.slice(begin,end);
console.log($scope.reviewsPerPage);
});
因此,使長話短說,我有一個變量paginatorCurrentPage,我通過單擊我的<pagination>
號改變,但$表不發生反應。這個$ watch只被調用一次:當我給它賦值1(在從我的restangular對象中創建一個數組之後)之後,$ watch不再被調用。 還有我cheking如何paginatorCurrentPage改變我的html文件:
<p>Current : {{paginatorCurrentPage}}</p>
而且它的實際工作,這個變量變化的時候將我的分頁按鈕,而是$手錶不叫。
對不起,我的英語,謝謝!
編輯:
我在分頁程序更新了我的引導界面,所以現在我用ng-model
istead的page
。我意識到變量paginatorCurrentPage只在我看來改變,但在控制器中我仍然有我的默認$scope.paginatorCurrentPage = 1
。問題依然存在。
'paginatorCurrentPage'在哪裏被修改?你能告訴我們修改'paginatorCurrentPage'的代碼嗎? – Callebe 2014-09-02 20:21:07
http://angular-ui.github.io/bootstrap/#/pagination < - 這沒有定義'page'屬性。相反,它使用'ng-model'。另外,你可以綁定一個'ng-change'事件,而不需要$ watch。 – Malk 2014-09-02 20:23:46
@Callebe,它通過點擊我的分頁按鈕進行修改:page =「paginatorCurrentPage」。 – xSaber 2014-09-02 20:31:07