Hello我的目标是测试员工是否存在$ scope.CodeBarre值到我的FIREBASE数据库中,然后,如果$ CodeBarre存在,程序将打开一扇门。 $ CodeBarre var来自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来获得员工的姓名。雇工[0] .nom
注意:如果找不到员工,那么firebase返回的数组不为空,但我根本找不到员工对象....
我也尝试使用$ firebaseObject,但我无法获得常规的AngularJs对象。
请你帮忙谢谢
这就是我的模板的样子:
<div class="row">
Bienvenue, {{employe.prenom}} {{employe.nom}}
</div>
当我输入此内容时,尝试获取对象而不是数组时,它会很好地找到该员工,但问题是我无法访问该模板,因为我不知道预付$ ID(此$ ID由Firebase生成):
/* TEST DU CODE BARRE EN LIGNE */
function testerLeCodebarre(){
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]
我的愿望只是将$ scope.employe填充到我从firebase获得$ id -KIcVJh9sdVSWMamGaA3的对象,但我真的不知道该怎么做它
编辑:所以它适用于此:
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 =数据在我的模板中不起作用:
<div class="row">
Bienvenue, {{employe.prenom}} {{employe.nom}}
</div>
我仍然无法访问该对象,另外考虑到我不提前知道$ id:
我尝试输入我的控制器 data.nom 或 data.age ,但未定义。 我还试过$ scope.employe = data.nom;但是未定义
答案 0 :(得分:1)
正如我所见,您将始终检索一名员工,因此您无需在案例中使用$firebaseArray
。简单地说:
var ref = new Firebase('https://blinding-heat-8502.firebaseio.com/employes').orderByChild("identifiant").equalTo($scope.CodeBarre).on("child_added", function(snapshot) {
var data = snapshot.val();
if (data){
//employee exists
$scope.employe = data;
}
});