AngularJS md-autocomplete поиск строки в строке

Как вы настраиваете md-autocomplete так что если вы ищете слово, оно ищет строки в строках. На данный момент он находит только первое слово. Как и в демоверсии https://material.angularjs.org/latest/demo/autocomplete, если вы печатаете new, он находит Нью-Джерси. Но если вы наберете майку, то ничего не найдете.

Это мое querySearch функция

function querySearch(query) {
    var results = query ? vm.subjects.filter(createFilterFor(query)) : vm.subjects,
        deferred;
    return results;
}

Это мое createFilterFor функция

function createFilterFor(query) {
    var lowercaseQuery = angular.lowercase(query);
    return function filterFn(subject) {
        return (subject.Display.indexOf(lowercaseQuery) === 0);
    };
}

2 ответа

//This worked for me

function createFilterFor(query) {
        debugger;
        //var lowercaseQuery = angular.lowercase(query);

        return function filterFn(product) {
            var results = new Array();

            var lowercaseQuery = angular.lowercase(query);

            index = 0,
            res = [];
            res.push(-1);

            //Get starting index of each word in string & push in array 
            while ((index = product.value.indexOf(' ', index + 1)) >= 0) {
                res.push(index);
            }

            for (var i = 0; i < res.length; i++) {
                var a = res[i] + 1;

                if (product.value.indexOf(lowercaseQuery) === a)
                {
                    return (product.value.indexOf(lowercaseQuery) === a);
                }
            }
        };
    } 

Я решил это таким образом. Обратите внимание, что есть массив с тегами и и массив без использования для отображения.

            function querySearch(query) {

            var results = new Array();

            for (var i = 0, len = taggedSubjectArrray.length; i < len; i++) {
                var txtToCompare = taggedSubjectArrray[i].Display;

                if (txtToCompare.indexOf(query) != -1)
                {
                    // string was found
                    // Add to results
                    results.push(validationArrray[i]);
                }
            }

            return results;
        }
Другие вопросы по тегам