使用带有angularFire的ng-grid - 键命名问题

 啲眼泪17 发布于 2023-02-13 12:08

我现在已经玩过这个了,但是无法理解它:

(使用角度1.2.2,angularFire 0.5.0和最新的ng-grid)

所以我有一个firebase,我正在使用angularFire将我的数据提取到ng-grid组件中,如下所示:

//First I go get my data, in this case something called 'grades' from ..../db/grades
    var promise = angularFire(new Firebase($scope.fireBaseUrl), $scope, 'grades');
//When they're fetched I start up a watcher
    promise.then(function(grades) {
    startWatchGrade($scope, filterFilter, appSettings);
});

//Then I bind that grades as a datasource to my ng-grid
$scope.gridOptions = { 
data: 'grades',
enableCellSelection: false,
enableRowSelection: true,
etc....,

效果很好,我已经完成了控制,将新项目添加到"成绩"(推送)和删除项目(拼接),所有内容都很好地反映到ng-grid.像这样:

//Adding new like this is ok
$scope.grades.push({some-new-data-here});

//Deleting old like this is ok
$scope.grades.splice(row.rowIndex, 1);

但是这种方法会自动生成基于int的火钥匙,这些火钥匙在修改时会一直变化,所以我想控制钥匙,所以我改变了添加要使用的项目:

var fbRef = new Firebase($scope.fireBaseUrl);
var newRef = fbRef.push({some-items-here});

一切正常,可以使用我的非整数ID将数据存储到firebase中,但它不再绑定到ng-grid.将"成绩"转储到控制台中会显示返回的所有行,但不会显示在ng-grid中.

简而言之:angularFire生成的基于整数的索引在ng-grid中工作正常,firebase.push创建的自定义字母数字不能.

我希望这听起来不太神秘.想做一个小提琴,但是让我们希望它是一些'陷阱'我忽略了并且很容易解决.如果不是,我会尝试修补一个.

谢谢!

1 个回答
  • 根据文档,$ firebase总是返回对象,而不是数组,这些对于ng-grid不能很好地工作.在这种情况下,angularfire提供了一个过滤器来帮助orderByPriority.确保将$ filter注入控制器.

    (注意:我没有使用promises或者观察者,只使用angularfire的内置事件)

    $scope.grades = $firebase(new Firebase($scope.fireBaseUrl));
    $scope.gradesData=[];
    $scope.gridOptions = { data: 'gradesData'}
    $scope.grades.$on("loaded", function(data) {
        var arrData = $filter("orderByPriority")(data);
        $scope.$apply(function(){$scope.gradesData = arrData;});
    });
    

    对于新行,您可以为$ on.('change'...)尝试类似的方法.

    希望有所帮助

    2023-02-13 12:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有