2015-03-02 70 views
4

我想在ng-grid 3.0中使用headerCellTemplate選項基於AngularJs MultiSelect添加自定義過濾器。請參閱plunker角度ui網格自定義過濾器不能用作headerCellTemplate

<div ng-controller="mainCtrl"> 
    <multi-select 
    input-model="names" 
    button-label="name" 
    item-label="name" 
    tick-property="ticked" 
    max-labels="1" 
    helper-elements="" 
    on-item-click="fClick(data)" 
    default-label="None" 
    class="level-multi-select"> 
    </multi-select> 

一切,只要它位於網格外,看起來很好。當它在裏面時,我遇到了兩個問題:

  1. 看起來好像數據被過濾但過濾後顯示不正確。

  2. 佈局損壞。不覆蓋CSS,下拉菜單隱藏在UI單元后面,點擊後重新定位。在應用來自here(當前版本的plunker)的建議後,下拉菜單正在改變頂部標題的高度。我更喜歡與網格菜單相同的顯示(點擊右上角的圖標後可見)。

回答

2

感謝你們對GitHub上的幫助,我設法找到了兩種解決方案:

一個是在我的例子覆蓋customHeaderTemplate像上面。 css必須進行不同的修改。我還糾正了代碼中的錯誤。在html中應該沒有對mainCtrl的引用。我使用第二個控制器進行多選,並修改代碼以使用$ scope.grid.appScope。我認爲使用廣播是清晰的解決方案,但至少碼短

http://plnkr.co/edit/lcoTtIdg723yHXtwsKjl?p=preview

$scope.grid.appScope.myData = _.filter($scope.grid.appScope.originalData, function (item) { 

    return _.contains(selectedNames, item.name) ; 
    }); 

二是基於新的發展這是尚未UI電網的一部分。 您可以按照問題#2918查看詳細信息。也有鏈接到GitHUb頁面上的第二個plunke

+2

http://ui-grid.info/docs/#/tutorial/306_custom_filters演示如何在UI-Grid中執行多選過濾器的官方示例: 示例中的「年齡」列使用模式呈現多選選項。 – Tony 2015-10-14 15:46:00