我想在AngularJs中創建一個類型,並遵循this tutorial我已經完成了大部分的工作。唯一不適合我的是,我希望當你第一次點擊框時顯示整個列表,而不是等待輸入顯示任何內容。
在模板中有如何在沒有輸入時更改過濾器操作?
<input type="text" ng-model="model" placeholder="{{prompt}}"
ng-keydown="selected=false"/>
...
<div class="item" ng-repeat="item in items | filter:model track by $index"
ng-click="handleSelection(item[title])" style="cursor:pointer"
ng-class="{active:isCurrent($index)}" ng-mouseenter="setCurrent($index)">
我需要創建一個自定義過濾器我想這想有點像
.filter('psudoFilter', function($filter){
var original_filter = $filter('filter');
return function(input){
if(input.length === 0){
return // What should I return if I don't want to change the data?
} else {
return original_filter(input_to_filter_items_by); //Filter as usual
}
}
});
我的問題是,應該怎樣內部函數返回,使當沒有輸入時它不會過濾?過濾器如何與它實際要過濾的數據交互?
感謝您的解釋良好的答案。出於好奇,你在哪裏找到mousedown的事件順序,然後模糊然後點擊? – EasilyBaffled
我剛剛谷歌搜索。關於事件順序並沒有真正的確定性規範;每個瀏覽器都可以以不同方式實現(不幸的是) – Jerrad