У меня есть приложение, которое имеет список достижений. Пользователь может добавить достижение из приложения. Достижение - это объект 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;
}
Любые идеи сильно оценены. благодаря
Поэтому я исправил проблему следующим образом:
$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>