AngularJS过滤掉第一个字母(与Google搜索一样)

时间:2015-03-26 07:51:11

标签: angularjs filter

我正在编写指令中的代码进行搜索(使用文本框)。 这是代码

+ "<input type='text'  class='form-control' ng-model='newrecord."
+ attribute.name
+ "' name='"
+ attribute.name
+ "'placeholder='Start typing patient name"
+"' typeahead='"
+"a.value as a.value for a in getpatients($viewValue) | limitTo:20:begin "
+"'/>"

这是我的控制器代码

 $scope.getpatients = function(queryString) {
            if (queryString == undefined || queryString.length < 0) {
                return [];
            }
            queryString = 'query={"patientName":"'+queryString+'"}';

以上代码正在运作&amp;我能够搜索。但它也在搜索中间字母。我想从谷歌这个词的第一个字母中搜索。帮助我。

2 个答案:

答案 0 :(得分:1)

在Angular-way中,我建议您编写简单的自定义过滤器代码。我希望你想要实现的是这样的。

在html中。

<div ng-app="myapp" ng-controller="myctrl">
    <input type="text" ng-model="filter_text">
    <ul>
        <li ng-repeat="item in items | myfilter:filter_text">
            {{item}}
        </li>
    </ul>
</div>

在javascript中。

angular.module('myapp', []).filter('myfilter', function(){
    return function(input, text){
        // I recommend to use underscore lib for old browser.
        return input.filter(function(item){
            // I recommend to use standard regex for old browser.
            return item.startsWith(text);
        });
    };
});

function myctrl($scope){
    $scope.filter_text = 'a';
    $scope.items = [
        'abc',
        'bca'
    ];
}

I setup jsfiddle.

我希望这个样本可以帮到你。

答案 1 :(得分:0)

我认为这是关于服务器端代码中的功能。也许您服务器中的搜索功能会搜索到类似的内容。如果您无法修改服务器端代码,也许您可​​以尝试添加regexp字符来启动,例如&#39; ^&#39;。