AngularJS typeahead添加了按函数自定义排序
AngularJS typeahead add custom sort by function
我正在尝试构建一个typeahead,它应该得到指定数量的结果,并按startswitch对它们进行排序。
这意味着,如果我有值:阿拉巴马州、密苏里州、马里兰州、马萨诸塞州等,并在输入字段中键入"m"或"m",则顺序应为马里兰州、密苏里州,马萨诸塞州、阿拉巴马州。
因此,我的代码看起来像这样:
<input class="input-large" type="text" ng-model="selected"
typeahead="state for state in states | filter:$viewValue | limitTo:8">
我尝试添加一个自定义过滤功能:
<input class="input-large" type="text" ng-model="selected"
typeahead="state for state in states | filter:$viewValue | orderBy:orderByStartsWith()| limitTo:8">
具有以下功能:
$scope.orderByStartsWith = function() {
return function(element){
return element.toLowerCase().startsWith($scope.selected.toLowerCase()) ? 0 : 1;
}
};
这不起作用,因为作用域值selected
没有更新,如此JSFiddle 中所示
有什么解决方案可以得到想要的订单吗?
通过函数将$viewValue传递给订单,并使用它对结果进行排序。
<input class="input-large" type="text" ng-model="selected" typeahead="state for state in states | filter:$viewValue | orderBy:orderByStartsWith($viewValue) | limitTo:8">
$scope.orderByStartsWith = function(viewValue) {
return function(element){
return element.toLowerCase().startsWith(viewValue.toLowerCase()) ? 0 : 1;
}
};
检查小提琴:http://jsfiddle.net/2umL5yqL/1/
相关文章:
- 自定义函数中的光标位置
- Google Sheet自定义函数返回0
- 在JavaScript中调用函数时自定义此选项
- 使用drupal中自定义javascript文件中的一个函数
- 其中是自定义函数中的属性
- $resource上带有.then()函数的角度自定义方法导致错误
- 创建自定义函数以在函数上运行完整的多选下拉列表
- 在JavaScript中定义自定义对象和函数(第2部分)
- Google Sheets自定义函数条件格式
- 在JavaScript中定义自定义对象和函数
- 想要将ng个repeat对象传递给自定义筛选函数
- dalek回调或自定义函数
- 从sql填充Jqgrid的自定义Add函数中的下拉数据
- ExtJS 4-自定义排序函数只在点击列标题后执行
- 使用谷歌地图:一个返回undefined的自定义javascript函数
- AngularJS typeahead添加了按函数自定义排序
- JavaScript函数-自定义小部件- Appcelerator合金
- jQuery函数自定义组装回调
- JS-构造函数(自定义库)中的JSON/ARRAY传递变量
- 理解Javascript构造函数:自定义create方法