【发布时间】:2016-06-20 12:40:29
【问题描述】:
您好,我的目标是测试是否存在具有 $scope.CodeBarre 值的员工,并将其放入我的 FIREBASE 数据库中,然后,如果 $CodeBarre 存在,程序将打开一扇门。 $CodeBarre 变量来自 USB 条形码扫描,它将扫描员工 CardId...
这是我的实际代码:
/* TEST DU CODE BARRE EN LIGNE */
$scope.CodeBarre="GA13081982";
function testerLeCodebarre() {
var ref = new Firebase('https://blinding-heat-8502.firebaseio.com/employes').orderByChild("identifiant").equalTo($scope.CodeBarre);
$scope.employe = $firebaseArray(ref);
console.log($scope.employe);
}
我在 $scope.employe 的数组中获取对象,如下所示:
我得到了合适的员工,但之后不可能让它在 angularJs 视图中工作,我根本无法通过键入 $scope.employe[0].nom 来获取员工的姓名。 p>
注意:如果没有找到员工,那么firebase返回的数组不是空的,但我根本找不到员工对象....
我也尝试过使用 $firebaseObject,但我无法获得常规的 AngularJs 对象。
请帮忙谢谢
这就是我的模板的样子:
<div class="row">
Bienvenue, {{employe.prenom}} {{employe.nom}}
</div>
- 尝试使用 $firebaseObject:
当我输入这个,试图获取一个对象而不是一个数组时,它很好地找到了员工,但问题是我无法在我的模板中访问它,因为我事先不知道 $ID (此 $ID 由 Firebase 生成):
/* TEST DU CODE BARRE EN LIGNE */
函数测试器LeCodebarre() {
var ref = new Firebase('https://blinding-heat-8502.firebaseio.com/employes').orderByChild("identifiant").equalTo($scope.CodeBarre);
$scope.employe = $firebaseObject(ref);
console.log($scope.employe);
}
这就是我进入 Firebug 的原因:
[获取一个对象时的萤火虫][2]
我的愿望只是用我从 firebase 获得的具有 $id -KIcVJh9sdVSWMamGaA3 的对象填充 $scope.employe,但我真的不知道该怎么做。
编辑:所以它很适合这个:
var ref = new Firebase('https://blinding-heat-8502.firebaseio.com/employes').orderByChild("identifiant").equalTo($scope.CodeBarre).once("value", function(snapshot) {
var data = snapshot.val();
if (data){
console.log(data);
//employee exists
$scope.employe = data;
console.log($scope.employe);
}
但是 $scope.employe = data 在我的模板中不起作用:
<div class="row">
Bienvenue, {{employe.prenom}} {{employe.nom}}
</div>
我仍然无法访问该对象,另外考虑到我不知道 $id 提前:
我尝试输入我的控制器 data.nom 或 data.age 但未定义。 我也试过 $scope.employe = data.nom;但未定义
【问题讨论】:
-
如果您只是在模板中执行:
{{ employe.age }}会发生什么?使用firebaseObject()很好,因为您的目标是只检索一个项目。然后,如果您检索对象,则不必使用项目上的索引来获取项目。只需执行{{ employe.age }} {{ employe.addrese }}等。 -
你好,好的,我现在要试试这个,然后告诉你。
-
这个
$scope.CodeBarre是唯一的吗? -
Hem 不,它来自 USB 条形码扫描仪,每次都不一样 hi hi。
-
@JojoBebert 我的建议有用吗?