2016-11-06 4 views
1

Я новичок в угловых js. Я использую параметр углового js-фильтра. Как применить вариант фильтра для следующих ДиваУпорядочить поиск, используя Угловой фильтр JS

<div class="block-parent" ng-app=""> 
    <input type="text" name="search"> 
    <div class="answer block1" style="color: white; background-color: rgb(98, 128, 145);">Nick</div> 
    <div class="answer block1" style="color: black; background-color: rgb(114, 139, 137);">Sam</div> 
    <div class="answer block1" style="color: white; background-color: rgb(123, 138, 115);">John</div> 

Пример: Когда типа пользователя ник на поле поиска, а затем только <div class="answer block1" style="color: white; background-color: rgb(98, 128, 145);">Nick</div> это нужно показать $ два других DIV это нужно скрывать. я вижу эту документацию https://docs.angularjs.org/api/ng/filter/filter. Пожалуйста помоги .

UPDATE: Для того, чтобы выполнить эту задачу без угловых JS Пожалуйста, обратитесь Jquery search using real time input , like Filter option in Angular JS

+0

ваш вопрос показывает немного непонимания того, как угловых работ. Angular способен выполнять операции над ** переменными JavaScript **, которые могут включать фильтрацию, сортировку и рендеринг в HTML. *** *** *** не работает *** непосредственно ** ** ** ** *** ***. – Claies

+0

Вы могли бы предложить хорошее решение? –

+0

Помимо использования массива JavaScript для хранения ваших данных, как указал Aer0 в его ответе? Как я уже говорил в своем предыдущем комментарии, если вы не манипулируете ** данными **, то Angular не является подходящей основой для выполнения этой задачи. И, конечно, использование фильтра против HTML - неправильный подход; фильтры предназначены для создания подмножеств итеративного содержимого, например массивов, поэтому они хорошо работают с 'ng-repeat', который предназначен для отображения итераций. – Claies

ответ

0

Использование ng-repeat, в сочетании с filter. Пока вы показываете каждый элемент, хранящийся в вашей модели $scope, с помощью ng-repeat, вы можете просто фильтровать их с помощью поля ввода. Указанная модель в вашем поле ввода, связанная с соответствующим фильтром, сделает трюк.

Markup

<div ng-app="demo" ng-controller="ctrl"> 
    <input type="text" ng-model="search"> 
    <div class="block-parent" ng-repeat="answer in answers | filter: search"> 
    {{ answer }} 
    </div> 
</div> 

JS

angular.module('demo', []) 
.controller('ctrl', function($scope) { 
    $scope.answers = [ 
    'Nick', 
    'Sam', 
    'John' 
    ] 
}) 

Demo

+0

Благодарю вас за решение. Но дело в том, что я не могу сделать $ scope.answers = [ 'Nick', 'Sam', 'John' ], потому что в реальном html есть 1000 ответов, и структура html уже определена так Я также не могу использовать этот

{{ answer }}
. Так что напишите другой метод и сохраните этот метод. –

+0

Почему бы не переписать структуру? Любое другое решение, использующее манипуляции с DOM, может привести к серьезным проблемам с производительностью. Особенно, если вы используете тысячи записей. – Aer0

+0

на самом деле ваш ответ очень хороший. Но я хочу ответить, как @Sajeetharan. Но в его ответе он совершил ошибку. Не могли бы вы помочь переписать его. Сначала нам нужно загрузить 3 имени. Тогда, если какой-либо тип ник или любое имя, если это имя присутствует, необходимо указать это имя только –

Смежные вопросы