【问题标题】:Angular and firebase dropdown list to filter dinamicallyAngular 和 firebase 下拉列表动态过滤
【发布时间】:2015-08-26 08:23:14
【问题描述】:

我有一个包含成就列表的应用。用户可以从应用内添加成就。成就是存储在 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 对象,它以动态方式显示在用户可以选择的复选框列表中,然后它们也显示在下拉列表中,供用户对其进行过滤: 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 方法只查看 department 属性,但我不知道如何使模型的动态部分工作

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

非常感谢任何想法。谢谢

【问题讨论】:

    标签: json angularjs html firebase


    【解决方案1】:

    所以我这样解决了这个问题:

    $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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多