Angular 和 firebase 下拉列表动态过滤
Angular and firebase dropdown list to filter dinamically
我有一个应用程序,其中包含 achievements.A 用户可以从应用程序内添加成就的列表。成就是存储在 firebase 中的 json 对象,如下所示:
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 对象,它动态地显示在用户可以 select 的复选框列表中,然后它们也显示在下拉列表中,供用户选择过滤它们:
departments
Finance: "Finance"
HR: "HR"
digital innovation: "digital innovation"
example: "example"
marketing:"marketing"
我的应用程序中有这个下拉菜单,我正在使用它来制作过滤器。那么什么部门的用户select只会显示那些成就。
我的 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});
}
我也有这段代码,它在某种程度上可以工作,但它实际上会检查用户 select 的值,并在所有成就属性中查找它。我希望 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>
我有一个应用程序,其中包含 achievements.A 用户可以从应用程序内添加成就的列表。成就是存储在 firebase 中的 json 对象,如下所示:
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 对象,它动态地显示在用户可以 select 的复选框列表中,然后它们也显示在下拉列表中,供用户选择过滤它们:
departments
Finance: "Finance"
HR: "HR"
digital innovation: "digital innovation"
example: "example"
marketing:"marketing"
我的应用程序中有这个下拉菜单,我正在使用它来制作过滤器。那么什么部门的用户select只会显示那些成就。 我的 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});
}
我也有这段代码,它在某种程度上可以工作,但它实际上会检查用户 select 的值,并在所有成就属性中查找它。我希望 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>