Раскрывающийся список Angular и Firebase для динамической фильтрации

0

У меня есть приложение, которое имеет список достижений. Пользователь может добавить достижение из приложения. Достижение - это объект json, хранящийся в firebase, и выглядит следующим образом:

 achv_date: "2 February, 2015"
 achv_department:
         digitalInnovation: "digitalInnovation"
         example:"example"
 achv_type: "example"
 date: 1422828000000
 description: "fsafa"
 image: "data:image/j"
 name: "dsa"

И это объект json отдела, который динамически отображается в списке флажка, который пользователь может выбрать, а затем он также отображается в раскрывающемся меню для пользователя, чтобы сделать фильтр на них: departments Finance: "Finance" HR: "HR" digital innovation: "digital innovation" example: "example" marketing:"marketing"

У меня есть это раскрывающееся меню, в котором я создаю фильтр. Итак, какой отдел пользователь выберет только те достижения, будет отображаться. Выпадающее меню html выглядит так:

<ul id='dropdown3' class='dropdown-content'>
<li  ng-repeat="department in departments"><a ng-click="filterBy(department)">{{department.$value}}</a></li>
</ul>

Метод filterBy() в контроллере выглядит следующим образом:

$scope.filterBy = function(checkbox){
 $scope.department = {};
 $scope.department.achv_department = {};
 $scope.department.achv_department = Object.defineProperty($scope.department.achv_department, checkbox.$id, {value: checkbox.$value});
        }

У меня также есть этот код, который работает в некотором роде, но он фактически проверяет ценность, которую пользователь выбирает и ищет ее во всех достижениях достижения. Я хочу, filterBy метод filterBy выглядел только в свойстве department но я не могу понять, как сделать динамическую часть работы модели

$scope.filterBy = function(checkbox){
            $scope.department = checkbox.$value;
   }

Любые идеи сильно оценены. благодаря

Теги:
firebase

1 ответ

0
Лучший ответ

Поэтому я исправил проблему следующим образом:

$scope.filterBy = function(checkbox){
            $scope.department = {};
            $scope.department[checkbox.$id] = checkbox.$value;
        }

и добавил эту строку в html:

<li id="item" class="col s12 m6 l4" ng-repeat="(key, meeting) in meetings  | filter:{achv_department : department}" spinner-on-load>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню