5

TL的角應用;博士 將是最好的方法是什麼用於結構化的角應用支持過濾和在客戶端構建用於服務器端過濾和分頁

語境使用單選按鈕過濾器在服務器端排序應用:

我有一個樣品的電影列表應用,其中電影有流派和風格分類。他們可以根據名稱,評級,發佈年份進行排序。後端非常清晰,我以查詢參數的形式將過濾器傳遞給url,並返回數據並解析分頁。從客戶端我創建url並將字符串params附加到它。不過,我已經嘗試了很少的過濾器和客戶端排序實現,並不滿意。每個實現都涉及使用單選按鈕進行過濾。我使用了以下方法。使用

途徑:

  1. 創建一個基於電影的流派和風格幾個過濾器,當點擊一個單選按鈕啓動的情況下,通過過濾器,無線電模型事件。在movieListDirective中監聽事件,然後創建url,然後觸發服務器調用。

  2. 創建過濾器,並在服務傳遞數據,推出只要單擊一個單選按鈕的事件。收聽活動並從服務中接收數據。創建網址並啓動服務器調用。

  3. 沒有使用過這一做法,但給它一個嘗試 單選按鈕的點擊推數據在瀏覽器URL中的查詢參數的形式思考。監聽指令中的url更改事件並觸發服務器調用

我也在考慮使用UI路由器。爲過濾器和排序按鈕創建抽象狀態。將movieListDirective放入子狀態中。

我只是不滿意我的2種方法和認爲有改善的空間巨大。任何人都可以請建議一個非常可擴展的方法或東西,以改善我現在使用的方法。提前致謝。

**我使用的離子。我想利用拉來刷新和無限滾動功能。這些必須放在離子含量指令中。因此,所採用的方法應該滿足這一要求**

+0

請添加一些代碼。你試過什麼了? – lin

+0

我無法在這裏添加代碼。它太大了。我試過的是使用單選按鈕和指令列出電影創建過濾器。獲取電影的網址基於過濾器收音機型號 –

+0

因此,請創建一個plnkr。 Plnkr允許你添加很多代碼:) – lin

回答

0

嗯,如果我是你,我會改變一個變量在我$scope,並聽取其更改爲與您的過濾器再次請求。

我做了一個Plunker來幫助你。 https://embed.plnkr.co/cNZ1Um7FycaPBjef5LI1/

在這個Plunker中,我加了ng-model到我的radio buttons。當選擇這些單選按鈕時,它們會使用values來更改我的變量。

<input type="radio" value="new" ng-model="area"> 

此單選按鈕上述變化$scope.area"new"。然後,我的控制器聽取這個更改事件並調用我的$scope.requestAPI函數。

$scope.$watch('area', function() { 
    $scope.requestAPI($scope.area, $scope.category); 
}); 

此功能使用的$scope.area$scope.category值做出的請求。改變它們的值,你改變了請求。

這正是您需要的功能。