0
我以爲我已經解決了這個問題,但事實證明,我沒有提供任何幫助將不勝感激。
基本上,我遇到了導致我的$ scope的控制器和範圍問題,$ watch()會在我不需要時調用。
我有一個角度視圖(html)的下拉和分頁標記使用不同的控制器和視圖。
首先,我有這樣的:(其中form_item_Division.html僅僅是部門的下拉列表)
<div class="panel panel-primary panel-shad-1" ng-controller="DashboardIEPItemDraftCtrl">
<div ng-include="'views/partials/form_item_Division.html'"></div>
<div ng-include="'app/dashboard/iep.html'" ng-controller="DashboardIEPItemDraftCtrl"></div>
</div>
我iep.html看起來是這樣的:
<div ng-controller="DashboardIEPItemDraftCtrl">
<div ng-include="'app/dashboard/iepitem_table1.html'" ng-if="numberOfItemsByUserDivision > 0"></div>
<div class="col-xs-12 text-center" ng-show="totalNumberPages > 1">
<pagination items-per-page="itemsPerPage"
total-items="numberOfItemsByUserDivision"
ng-model="currentPage"
max-size="3"
boundary-links="true"
rotate="false"
class="pagination-sm panel-shad-1"
num-pages="totalNumberPages"
previous-text="‹"
next-text="›"
first-text="«"
last-text="»">
</pagination>
</div>
</div>
我iepitem_table1.html定義表格佈局,並在不同的控制器下。它看起來像這樣:
<table class="table table-condensed table-striped table-hover" ng-controller="IEPItemTableCtrl">
(table layout defined here)
</table>
我的劇本的相關部分如下所示:
$scope.getItemsBySelectedDivision = function (selectedDivisionId) {
blah.get({ count: true, filter: 'DivisionPerformingId eq ' +
selectedDivisionId }).$promise.then(
function (response) {
$scope.itemsByUserDivision.length = 0;
$scope.itemsByUserDivision = response.value;
$scope.numberOfItemsByUserDivision = response.value.length;
$scope.totalNumberPages = Math.ceil(response.value.length/
$scope.itemsPerPage);
var pagedData = $scope.itemsByUserDivision.slice(0,
$scope.itemsPerPage);
$scope.itemsByUserDivision = pagedData;
},
function (error) {
// Do something when it errors
});
};
$scope.$watch("currentPage", function() {
if ($scope.itemsByUserDivision != null) {
$scope.itemsByUserDivision = originalItems;
var pagedData = $scope.itemsByUserDivision.slice(($scope.currentPage -
1) * $scope.itemsPerPage, $scope.currentPage * $scope.itemsPerPage);
$scope.itemsByUserDivision = pagedData;
}
});
當我從下拉列表中選擇一個部門,通過與分頁標籤一切正常滾動頁面。但是,當我滾動頁數超過一頁的分部頁面,然後返回並選擇另一個分區時,顯示的結果不正確。我認爲這是因爲我的$ scope。$ watch()在我不想要的時候被調用。我想我沒有爲這種情況正確安排我的控制器。無論如何,任何幫助都非常感謝。
感謝,
皮特
嗨韋達,我曾嘗試這樣做,但沒能。你能更具體一點嗎? – Pete
你還在面臨問題嗎? – Ved