2013-08-22 3 views
0

Я использую angularjs для одного из моих проектов. Я пытаюсь реализовать функцию фильтрации.Угловая JS - Фильтрация на основе групп флажков (условия AND & OR)

Я построения флажков фильтра, используя приведенный ниже код

<div class="checkbox" ng-repeat="incidentType in keywords.incidentType"> 
<label><input type="checkbox" value={{incidentType}}>{{incidentType}}</label> 
</div> 

Результат показан на рисунке ниже

enter image description here

При проверке или убрав флажки, мне нужно создать объект, как показано ниже. Основываясь на этом объекте json, я отправлю запрос на сервер для получения соответствующих данных.

{ 
    "application": [ 
     "Athena", 
     "EWS" 
    ], 
    "incidentType": [ 
     "Publishing Failure", 
     "Security Failure" 
    ] 
} 

Любая идея о том, как это может быть достигнуто в angularjs. Буду признателен за любую оказанную помощь.

ответ

3

Для чего-то подобного вы можете использовать объект, как то, что вы хотите отправить в качестве модели, а затем привязать его к данным в вашем ng-repeat. Я позволил вам проверить здесь первый: http://jsfiddle.net/DotDotDot/gcEJH/
Я взял свой образец код, и я просто добавил контроллер с объектом ($scope.checked), который я использую для нг-модели в каждом флажке

$scope.checked={application:{}, incidentType:{}}; 

тогда, HTML-

<div class="checkbox" ng-repeat="incidentType in keywords.incidentType"> 
<label><input type="checkbox" ng-model='checked.incidentType[incidentType]' ng-true- value='{{incidentType}}'>{{incidentType}}</label> 
</div> 

нГ-модель часть говорит Угловой поставить значение в incidentType части объекта, под Kay, соответствующее значению. Это не даст вам тот же объект, но вы будете иметь что-то вроде:

{ 
"application": { 
    "Athena": false, 
    "EWS": true, 
    "EWindows": true 
}, 
"incidentType": { 
    "Publishing Failure": true, 
    "Security Failure": true 
} 
} 

который на самом деле довольно близко, и из которого вы можете создать свой запрос (или воссоздать тот же объект, который вы хотели легко)

Надеется, что это помогает, весело

=)

+0

это worked.Exactly то, что я искал. Спасибо за помощь ур. – Saravanan

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