2015-05-19 90 views
3

我想從這裏md-chipsAngularMaterial MD-芯片:不要展<MD-自動完成>選擇的項目

<md-autocomplete>例如爲了防止所選的項目從進入室內<md-autocomplete>我已經修改了querySearch功能這樣:

function querySearch (query) { 
    var results = query ? self.searchData.filter(createFilterFor(query)) : []; 
    var finalResults = []; 
    angular.forEach(results, function(result) { 
     if($scope.selectedItems.indexOf(result.name) < 0) { 
      finalResults.push(result); 
      updateSelectedItems(result);  
     } 
    }); 
    return finalResults; 
} 

但是我的問題是,一旦我們選擇一個項目,控件不會進入這個函數。有人可以解釋如何解決這個問題嗎?

回答

3

我發現從本文檔中的解決方案:md-autocomplete

我們只需要添加md-no-cache="true"用於調用querySearch功能我們每次搜索查詢項目

+1

這仍然不適用於我:(你可能會上傳一個jsfiddle? – arnoutaertgeerts

+0

如果可以使codepen,將是真棒。 –

+0

它也不適合我的任何幫助嗎? –

1

爲我工作的解決時間: 的MD md-autocomplete上的-no-cache =「true」仍然是強制自動完成重新初始化md-items的必須工具; Md芯片應該具有md-on-remove和md-on-append集合並實現爲從列表中移除芯片或將芯片添加到列表;

我的代碼看起來是這樣的: HTML:

md-on-remove="removeTagChip($chip)" 
md-on-append="appendTagChip($chip)" 

JS:

$scope.removeTagChip = function (chip) { 
    var chipPos = $scope.getPosition(chip.Id, $scope.ChipTags); 
    if (chipPos < 0) { 
     $scope.ChipTags.push(chip); 
    } 
}; 
$scope.appendTagChip = function (chip) { 
    var chipPos = $scope.getPosition(chip.Id, $scope.ChipTags); 
    if (chipPos > -1) { 
     $scope.ChipTags.splice(chipPos, 1); 
    } 
    return chip; 
}; 

$ scope.getPosition剛剛返回的芯片列表中的芯片的位置;

相關問題