我有一個頁面,可以在選擇某個「指令」時打開模式窗口
當模式窗口加載完成後,用於搜索的文本輸入,用於列出所有「指令」(除了我選擇的指令)的有序列表,用於選擇每頁希望看到的指令量的下拉列表,用於下一頁和上一頁的2個按鈕以及顯示當前頁面的文本以及有多少頁面。無法從模式內的過濾列表中獲取已篩選的項目
這是什麼樣子(手動下拉列表中什麼都不做現在)
到目前爲止,我讓我的所有指令恰到好處,我的過濾工作,每頁作品的結果,下一個和上一個按鈕更改頁面...但它似乎像我的numberOfPages功能不起作用。
這是模態HTML頁面:
<div>
Search: <input type="text" ng-model="search.Description"/> Manual:
<select ng-options="manual.Description for manual in manuals">
</select>
</div>
<br />
<div class="table clearfix" style="max-width: 800px; max-height: 300px; overflow: scroll;">
<ol class="table-body clearfix">
<li class="table-row clearfix" ng-repeat="item in (filteredItems = (instructions | filter:search:strict)) | startFrom:currentPage*showLimit | limitTo:showLimit" ng-include="'js/manuals/manuals-item-instruction-attachment-showInstruction.html'"></li>
</ol>
</div>
<div>
<button ng-disabled="currentPage == 0" ng-click="currentPage=currentPage-1">Previous</button>
Page: {{currentPage + 1}}/{{numberOfPages()}}
<button ng-disabled="currentPage >= numberOfPages() - 1" ng-click="currentPage=currentPage + 1">Next</button>
Results per page:
<select ng-model="showLimit">
<option value="10">10</option>
<option value="20">20</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
</div>
這是我的模式創建和打開
openreference: function (item) {
var modalInstance = $modal.open({
templateUrl: 'js/manuals/manuals-item-instruction-attachment.html',
controller: ModalInstanceCtrl,
resolve: {
instruction: function() {
return item;
}
}
});
modalInstance.result.then(function (selectedItem) {
$scope.selected = selectedItem;
},
function() {
$log.info('Modal dismissed at: ' + new Date());
});
}
的功能,這是我的模態控制器
var ModalInstanceCtrl = function ($scope, $modalInstance, instruction) {
$scope.showLimit = 10;
$scope.currentPage = 0;
$scope.numberOfPages = function() {
if ($scope.currentPage + 1 > Math.ceil($scope.filteredItems.length/$scope.showLimit)) {
$scope.currentPage = 0;
}
return Math.ceil($scope.filteredItems.length/$scope.showLimit);
}
$http({ method: 'GET', url: '../api/Instructions/GetAllOtherInstructions', params: { 'instructionId': instruction.Id} }).success(function (result) {
$scope.instructions = result;
});
$scope.cancel = function() {
$modalInstance.dismiss('cancel');
};
};
後調試,numberOfPages函數中的filteredItems總是未定義的,不管我在哪裏嘗試過在我的代碼中放置numberOfPages函數。
爲什麼我的ng-repeat過濾項總是未定義?在非模態頁面中我有同樣的事情,它工作得很好。
那是哪裏的應該設置'filteredItems'的代碼?在'ng-repeat' html中?我不認爲這是有效的。 –
這是有效的,請參見[這裏](https://groups.google.com/forum/#!topic/angular/7WY_BmFzd3U)。我也在一個頁面中列出所有用戶並用分頁過濾它們。這與我在這裏完全一樣,除非它不是模態。我有一種感覺,我只是犯了一個愚蠢的錯誤,但我不能指責我做錯了什麼。 – snaplemouton
您可以使用batarang來調試您的示波器嗎?模式是否有其自己的範圍,filteredItems沒有達到? –